


我打的代码不知道是哪的问题,从结果来看好像是没有循环
*p -=32 的条件应该是 flag==1 并且 *p >='a',而且flag的初始值应该是1,否则第一个单词就没法更改了。
flag=1的条件应该是 *p == ' '

代码修改如下:
#include <stdio.h>
int main()
{
int flag = 1; //这里初始化为1
char str[80],*p = str;
printf("Input a line char:");
gets(str);
while(*p != '\0')
{
if (*p>='a' && flag==1)
{
*p -= 32;
flag = 0;
}else if (*p == ' ')
{
flag = 1;
}
p++;
}
puts(str);
return 0;
}