本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
// 学过数组和字符串以后 比较好做
#include <stdio.h>
int main()
{
char a;
int cnt=0,countword=0;
while(1){
scanf("%c",&a);
//读到回车 就结束循环 输出答案
if(a=='\n'){
break;
}else if(a!=' '){ // 不为空格且 满足下面条件的就为一个单词
if(a>='a'&&a<='z'||a>='A'&&a<='Z'||a>='0'&&a<='9') {
countword++;
cnt++; //cnt是为了 统计字母长度
}
while(1){
scanf("%c",&a);
if(a==' '||a=='\n'){ /// 读到空格或者回车说明这个字母结束了
break;
}
cnt++;
}
//循环结束后 字母长度大于1的 countword加1 等于1的已经统计过了
// 之所以统计cnt 是为了防止读一个字母以后 立刻读入了空格或者回车 造成重复相加
if(cnt>1){
if(a>='a'&&a<='z'||a>='A'&&a<='Z'||a>='0'&&a<='9') countword++;
}
if(a=='\n'){
break;//这个break 和上面的第二个break 联系在一起 跳出整个循环;
}
}
}
printf("%d",countword);
return 0;
}