代码:
#include <stdio.h>
int main(){
char string[80];
int num=0;
int flag=0;//标记
char c;
//gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
gets(string);
for(int i=0;(c=string[i])!='\0';i++) // 字符串碰到\0结束 C知识
{
if (c==' ') { //如果当前字符是空格的话就把标记置为0
printf("%c",c),
flag=0;
}else if (flag==0)
{
flag=1; //把空格后面的那个字符变成大写,并把标记置为1
if (c>=97&&c<122) { //转换ASCII
c=c-32;
}
num++;
printf("%c",c);
}else if (flag==1){ //如果当前字符不是空格的话,直接输出
printf("%c",c);
}
}
printf("单词的个数为%d\n",num);
} |