C语言 统计单词个数

输入一串字符串,被空格分隔的字符串视作一个单词(可能被多个空格分隔),输出单词个数
能不能用scanf来做?因为scanf遇到空格就会结束对字符串的读取,这样只要记录在没有读到回车符时,scanf成功读取的次数,就可以得到单词的个数,但是我没编出来,有大神试试吗?

#include "stdio.h" main() { char s[81],c; int i,num=0,word=0; printf("请输入一行英文:\n"); gets(s); for(i=0;(c=s[i])!='\0';i++)//判断句子是否到未 if(c==' ') word=0;//是空格就为0 else if(word==0)//不是空格就判断之前有没有空格 { word=1;//复位用来判断空格是否存在的开关 num++;//如果之前有空格,单词数加1 } printf("本行中共有%d个单词.\n",num); } 其原理很简单: 对每个字符进行判断,如果是空格就把变量word标记为0,如果不是空格就判断word是不是0(即判断之前有没有空格),如果存在空格单词量加1,然后复位word变量为0。就这样重复,知道句子结束
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-06
方案一、用gets(读入字符串,然后逐个字符遍历该串,并统计出单词个数。
方案二、用函数getchar()逐个读入字符,同时判断单词个数,直到读到字符'\n'。
疑问、对于相同的单词作何处理?本回答被网友采纳
第2个回答  2017-07-06
现成的发给你?追问

对啊,就是用我说的这种

追答

私信发给你试试