10.14 首字母大写
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\\t')、回车符('\\r')、换行符('\\n')。 输入
输入一行:待处理的字符串(长度小于80)。 输出
输出一行:转换后的字符串。
#include
int i;
char a[100]; gets(a);
if(a[0]>=97&&a[0]<=122) }
a[0]=a[0]-32; for(i=1;a[i]!='\\0';i++) { } puts(a);
if(a[i]==' '&&a[i+1]>=97&&a[i+1]<=122)
a[i+1]=a[i+1]-32;
10.15 绕口令
规则是:主持人给出一串字符串,要求把这串字母简化。该串字符串全部为小写英文字母。 比如:aaabbbaa,则简化为3a3b2a;zzzzeeeeea,则简化为4z5e1a。依次类推。
Input
第一行为一个整数n,表示共有n组测试数据(1<=n<=100)。每组测试数据有一行,该行第一个数为字符串长度t( t <= 1,000,000),然后为一行长度为t的字符串。
Output
对于每组输入数据输出一行,即简化后的字符串。
16
#include
int i,n,t,l,j,k=0,count; char a[100][100]; scanf(\
for(i=0;i scanf(\scanf(\} for(i=0;i l=strlen(a[i]); for(j=0;j for(k=j+1;a[k]!='\\0';k++) { if(a[i][j]==a[i][k]) count++; if(a[i][k]!=a[i][j]) break; } printf(\} printf(\} } 17 10.16删除指定字符 编写函数fun,其功能是:从字符串中删除指定的字符。同一字母的大、小写按照不同的字符处理。只需要提交fun函数 /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ #include /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ void fun(char str[100],char ch) { int i,count=0; for(i=0;str[i]!='\\0';i++) if(str[i]==ch) str[i]='0'; for(i=0;str[i]!='\\0';i++) if(str[i]!='0') str[count++]=str[i]; str[count]='\\0'; } /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ int main() { char str[80]; char ch; gets(str); scanf(\ fun(str,ch); printf(\ return 0; } 18 /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ 10.17处理字符串 编写函数fun,其功能是:将数组s存放的字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。 例如,s中的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。 提醒:本题提交的时候,只需要提交fun函数就可以。 /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ #include /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ void fun(char s[]) { char a[80],b[80]; int i,j,x=0,y=0; for(i=0;s[i]!='\\0';i++) { if(s[i]>='0'&&s[i]<='9') { a[x]=s[i]; x++; } else { s[y]=s[i]; y++; } } a[x]='\\0'; s[y]='\\0'; strcat(s,a); } 19 /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ int main() { char s[80]; gets(s); fun(s); puts(s); return 0; } /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ 20