统计单词个数

思路

遍历整个字符串,当遇到空格时将word变量置为0,表示当前不处于一个单词中;当遇到非空格字符且word变量为0时,将word变量置为1,并将count变量加1,表示开始了一个新的单词。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>

int main() {
char str[100];
gets(str); //不可以使用scanf,scanf遇到空格就结束,gets遇到回车结束
int i = 0;
int word = 0; // 标记是否处于一个单词中,0表示不是,1表示是
int count = 0; // 记录单词数目
for (i = 0; str[i] != '\0'; i++)
{
if (str[i] == ' ') // 如果遇到空格,将word置为0,表示当前不处于一个单词中
{
word = 0;
} else if (word == 0) // 如果遇到非空格字符且不在一个单词中,将word置为1,表示当前开始了一个新的单词,并且将单词数目加1
{
word = 1;
count++;
}
}

printf("word = %d.", count);
return 0;
}