1. 程式人生 > >水一水 )統計一行文字的單詞個數 (15 分)(c語言)

水一水 )統計一行文字的單詞個數 (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;
}