题目: 输入一个英文句子,要求将每个单词的首字母改成大写字母。
输入格式: 测试数据有多组,处理到文件尾。每组测试输入一行,包含一个长度不超过100的英文句子(仅包含大小写英文字母和空格),单词之间以一个空格间隔。
输出格式: 对于每组测试,输出按照要求改写后的英文句子。
输入样例:
I like acm
i want to get accepted
输出样例:
I Like Acm
I Want To Get Accepted
思路:刚开始吧,我是用的string字符串,后来感觉操作每一个字符有点麻烦,于是想起了C中的gets()函数,该函数会读取空格,gets() 函数不仅比 scanf 简洁,而且,就算输入的字符串中有空格也可以直接输入,然后利用字符数组的性质将每个字符进行查看,修改,最后再输出字符串。
答案:
#include<stdio.h>
#include<string.h>
int main(){
char c[200];
int i,l;
while(gets(c)!=NULL){
l=strlen(c);
if(c[0]>='a'&&c[0]<='z')
c[0]-=32;
for(i=0;i<l;i++){
if(c[i]==' ') continue;
if(c[i]!=' '&&c[i-1]==' '){
if(c[i]>='a'&&c[i]<='z'){
c[i]-=32;
}
}
}
puts(c);
}
return 0;
}
|