今天我们来写一个代码实现统计单词个数
假如我们输入 :
I like english 单词个数为3个
I am come from china 单词个数为5个
那么我们如何来统计一行句子中有几个英文单词呢?
我们可以发现:每个单词之间都是有空格隔开的,所以我们可以通过统计空格的个数来统计单词的个数,没出现一个空格,就说明有一个单词,当没有空格的时候,我们也要对单词的个数+1,因为假如我们只输入一个单词,它的前后也没有空格啊,只有两个单词之间才有空格,所以一个句子的最后一个单词我们也不能忽略。
我们可以使用getchar这个函数
getchar函数的工作原理就是 当我们输入了一串用户输入一列字符后,按下回车(回车字符也在缓冲区中),getchar()是就开始从键盘缓冲区里面读数据(键盘缓冲区应该是个队列存储结构,先进先出)
代码如下
#include<stdio.h>
int main()
{
printf("请输入一行英文单词:\n");
char ch;
int i = 0;
int count = 0;
int word = 0;
while ((ch = getchar()) != '\n')
{
if (ch == ' ')
{
word = 0;
}
else if(word == 0)
{
word = 1;
count++;
}
}
printf("总共有%d个单词\n", count);
return 0;
}