输入一行字符串,统计其中有多少个单词,单词之间用一个或者多个空格分隔开

            思想:使用变量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);
}


猜你喜欢

转载自blog.csdn.net/yuhoujiangnan2011/article/details/42780699