这个程序的本意就应该是“this is a book!" ->"This Is A Book!"
if(*c=='') 这句应该是 if(*c==' ') 那应该是个空格
#include "stdio.h"
int change(char *c,int fg)
{ if(*c==' ')
L1:return 1; // 判断空格,返回1,更新flag=1,使空格的下一个字符被转大写
else
if(fg&&*c<='z'&&*c>='a') //由flag 的值决定字符是否转换大写
*c+='A'-'a';
return 0; //转换了大写后flag值更新为0,也就说只转换空格后的第一个字母为大写,后面的flag都为0,不会转换,直到判断到空格。
}
void main()
{ int flag=1; //用于标识下一个字符是否要被转大写,初始值为 1 真 ,
char ch;
do
{ ch=getchar(); //挨个从缓冲区中取出字符,每次循环取一个字符
flag=change(&ch,flag); //由flag 的值决定字符是否转换大写,同时更新flag的值,对应下一个字符。每次循环处理一个字符
putchar(ch); //每次循环输出一个字符
}while(ch!='\n');
}