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

#include
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

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语言,C语言程序设计题,c语言)