习题6-8 统计一行文本的单词个数 (15分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let’s go to room 209.
输出样例:
5
#include<stdio.h>
int main()
{
char ch1,ch2;int count=0;
ch1=getchar();
if(ch1!=' ') count++;
do{
ch2=getchar();
if(ch1==' '&&ch2!=' '&&ch2!='\n')count++;
ch1=ch2;
}while(ch2!='\n');
printf("%d",count);
return 0;
}
解题思路很简单,每个单词前满足一个空格跟着一个字符这样的规律,那么就引入两个字符变量,符合上面条件就加一,第一个要注意以空格开头的情况,本来count是打算设置为1的,但是上面那个情况不能忽略啊,所以设置为0,并添加if语句能判断倘若不是以空格开头的,这样就解决了问题,第二个要注意的地方是以空格结尾时,因为空格后面跟着回车时即\n也符合一个空格跟着一个字符所以循环里的if除了ch1==’ ‘&&ch2!=’ ‘还要加上&&ch2!=’\n’。