7-4 统计一行文本的单词个数
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
第一版答案,只能在示例情况下通过检测
#include <stdio.h>
int main(){
char ch;
int count=0;
ch=getchar();
while(ch!='\n'){
while(ch!=' '&&ch!='\n'){
ch=getchar();
}
if(ch!='\n'){
ch=getchar();
}
count++;
}
printf("%d",count);
}
第二版答案,只能通过实例输入和全空格
#include <stdio.h>
int main(){
char ch;
int count=0,flag=0;
ch=getchar();
while(ch!='\n'&&(ch!=' '||flag==1)){
while(ch!=' '&&ch!='\n'){
ch=getchar();
}
if(ch!='\n'){
ch=getchar();
}
flag=1;
count++;
}
printf("%d",count);
}
第三次敲写,推翻之前的,开始重新写逻辑
#include <stdio.h>
int main(){
char ch;
int count =0;
ch=getchar();//扫描第一个字符
while(ch!='\n'){//如果不是回车
if(ch!=' '){//如果不是空格
if((ch=getchar())=='\n'||ch==' '){//扫描下一个字符,并且测试是否是回车和空格,如果是回车或者空格,就计数
count++;
}
}else{
ch=getchar();//如果是空格,就继续扫描下一个
}
}
printf("%d",count);打印count
}
成就感满满!