水一水 )统计一行文本的单词个数 (15 分)(c语言)

7-2 统计一行文本的单词个数 (15 分)

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

输入格式:

输入给出一行字符。

输出格式:

在一行中输出单词个数。

输入样例:

Let’s go to room 209.
输出样例:

5

#include<stdio.h>
#include<string.h>
int wordcount(char* str){
	char *p=str;
	
	while(*p==' '){
		p++;
	}//这是当一开始就有空格的情况,有可能有多个连续的空格,所以要考虑跳过 
	
	if(*p=='\0'){
		return 0;//如果空格之后就是'\0'那就直接结束没有单词所以直接返回0 
	}
	
	int count=1;//如果能到这里说明没有'\0'结束,起码有一个单词,所以count的初始值为1 
	
	while((p=strchr(p,' '))!=NULL){
	//使用查找函数查找p后面的空格,如果找到一个空格就跳过连续的空格 
		while(*p==' '){//找到一个空格就要把连续的空格跳过,所以当不是空格时就会跳出while循环 
			p++;
		}
		
		//不要着急count++
		
		//不是空格还有两种可能,一种是直接结束为'\0'另一种才是单词 
	
		if(*p!='\0') count++; 
	}
	return count;
}
int main(){
	char str[1024];//因为题目中没有明确说明字符串的长度所以只能先定大一点
	gets(str);
	printf("%d",wordcount(str));
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/qq_43382350/article/details/84934807