#include<stdio.h>//习题6.8,输入字符中首字母大写
int main(void)
{
int word=0;//满足非空格字符转换条件
char ch;
while((ch=getchar())!='\n'){
if(ch==' '){
word=0;//符合多空格也可以满足条件,同时在此条件下,进行字符转换
}
else if(word==0){//字符非空格,此时word(定义的时候的)=0,判断并转化为大写字母
if(ch>='a'&&ch<='z'){
ch=ch-32;
word=1;// 在没遇到空格时,小写输出 ,同时保证只输出一个大写字母
}
}
putchar(ch);//输出大写字母后,Word=1,第一个if不进,第一个else也不进,直接到这原样输出字符(即小写)
}
return 0;
}
注意:改为大写字母的字符只需要输出一次,所以转换为大写字母时要改变word的值,使跳过字母转换。
空格后的第一个字母需大写,所以遇到空格就进入字母转换,同时用word限制只转换一个字母。
当输出不在分支结构里,转换为大写字母的字符就不会重复输出。