输入一行字符,统计单词个数

原创 2014年11月19日 21:50:56
#include<stdio.h>
int main()
{
	char string[81];
	int i;
	int num=0;//统计单词个数
	int word=0;//word=0表示未出现新单词;Word=1表示出现新单词

	char c;
	gets(string);
	for(i=0;(c=string[i])!='\0';i++)//只要字符不是'\0'就继续执行循环
	{
		if(c==' ')word=0;//如果是空格字符,是word=0
		else if(word==0)//如果不是空格字符且Word原值为0(Word原值为0表示前一个字符是空格)表示新单词出现
		{//word=0表示前一个字符是空格,word=1意味着前一个字符是非空格
			word=1;
			num++;
		}
	}
	printf("总共%d个字符\n",num);
}

法二是借鉴网上的:

输入一个字符串,求它包含多少个单词。单词间以一个或者多个空格分开。
第一个单词前,最后一个单词后也可能有0到多个空格。
比如:" abc    xyz" 包含两个单词,"ab   c   xyz    "  包含3个单词。

如下的程序解决了这个问题,请填写划线部分缺失的代码。

注意:只填写划线部分的代码,不要填写任何多余的内容。比如已经存在的小括号,注释或说明文字等。



#include<stdio.h>

int get_word_num(char* buf)
{
	int n = 0;   
	int tag = 1; 
	char* p = buf;
	
	for(;*p!=0 && *p!=13 && *p!=10;p++){
		if(*p==' ' && tag==0) tag=1;
		if(*p!=' ' && tag==1) { n++; tag=0; }   //填空:*p!=' ' && tag==1
	}
	
	return n;
}

int main()
{
	char buf[1000];
	fgets(buf,1000,stdin);
	
	printf("%d\n", get_word_num(buf));
	return 0;
}


相关文章推荐

C语言:输入一行字符,统计其中有多少单词,单词之间用空格分隔开

题目:输入一行字符,统计其中有多少单词,单词之间用空格分隔开。 下面是运行结果: 下面是我编写的源代码: #include //输入一行字符,统计其中有多少单词,单词之间用空格分隔...
  • abzbi
  • abzbi
  • 2012年08月21日 16:09
  • 25557

循环-06. 统计一行文本的单词个数

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中...

统计一行文本的单词个数

循环-06. 统计一行文本的单词个数(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B ...

循环-06. 统计一行文本的单词个数(15)

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中...

输入一行字符,统计有多少个单词

解题思路: 关键:怎样确定出现一个新单词 方法:从第一个字符逐个进行检查,判断此字符是否为新单词的开头,如果是num+1,最后num的值就是单词总数判断是否出现新单词,可以由是否由空格出现来决定(连续...

字符串中统计单词个数

用到的几个小知识 : 1.字符串流是以空格作为一个字符串的结束标志,采用stringstream来提取单词。 2.为了消除重复单词,需要先将vector排序,使得重复的单词相邻出现,不先排序无法正确“...

关于测试单词数目问题(14届蓝桥杯b组第一题)

今天闲来无事,感觉自己又在虚度光阴,于是就打开了14届的蓝桥杯b组赛的第一题,想要刺激刺激自己懈怠的神经,拿到题一看,是一道填空题,只允许在空中添上应该填的那部分代码,不允许多一点改动,看到题,我想杀...
  • f_zyj
  • f_zyj
  • 2015年11月23日 23:19
  • 901

c语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开

输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。解:如果测出某一个字符为非空格,而它前面的字符是空格,则表示新单词开始了,用变量word作为判别当前是否开始了一个新单词的标志,word=0,...

输入一行字符,输出最长的单词

1、确定单词分隔符,一般情况为空格和标点符号,根据题目情况来确定标点符号是否算在单词中。 假定单词不包括标点符号,即全由字母组成 2、根据上面的特点,读取一个单词 3、计算单词长度 4、与当前最...

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

问题描述:   输入一行字符,统计其中有多少单词,单词之间用空格隔开 解题思路: 判断单词是否出现,可以用空格的出现来判断(连续的若干空格看做成一个),若当前字符为空格,表明word未出现,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:输入一行字符,统计单词个数
举报原因:
原因补充:

(最多只允许输入30个字)