思想:使用变量num统计单词的个数,word判别是否为新单词标识,若word=0,表示未出现新单词,若出现新单词令word=1。
第一种情况:如果测出某一个字符为非空格,而他前面的字符为空格,则表示“新的单词开始了”,此时word = 1 , num 累加 1。
第二种情况:如果当前字符为非空格,而且其前面的字符也是非空格,则意味着仍然是原来的那个单词的继续,num不在累加1。
前面一个字符是否是空格可以从word的值看出来,若word等于0,则表示前一个字符是空格;若word为1,意味着前一个字符不是空格。
C语言代码如下
#include<stdio.h>
void main()
{
char string[80];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
{
if(c==' ')
word = 0;
else
if((c!=' ')&&(word == 0)) // if((word == 0)
{
word = 1;
num++;
}
}
printf("there are %d words\n",num);
}