統計一個字串中的單詞的個數,並列印各個單詞

期待一片自己的藍天發表於2014-06-05
/*測試資料:Shen zhen is a beautiful city!*/
/*執行結果:Word:6
Shen
zhen
is
a
beautiful
city!*/
#include<stdio.h>
#define SIZE 1000

void wordCount(char *str)
{
	int count = 0, flag = 0;
	char *p = str;
	while (*p != '\0'){
		while (*p == 32){
			if (*(p + 1) == 0){/*當空白的下一位是結束符時,意味著最後一個單詞後面是空格,那麼就做一個標記,讓下面的程式看到*/
				flag = 1;
			}
			++p;
		}
		while (*p != 0 && *p != 32){
			++p;
		}
		if (!flag){/*根據上面的標記,知道這個時候不是單詞結束了,而是句子要結束了,不再統計單詞個數了*/
			++count;
		}
	}
	printf("Word:%d\n", count);
	p = str;
	flag = 0;
	while (*p != 0){
		while (*p == 32){
			if (*(p + 1) == 0){/*和上面的一樣*/
				flag = 1;
			}
			++p;
		}
		while (*p != 0 && *p != 32){
			putchar(*p);
			++p;
		}
		if (!flag){
			putchar(10);
		}
	}

}

int main()
{
	char str[SIZE];
	printf("Please enter a string :\n");
	gets(str);
	wordCount(str);
	return 0;
}

相關文章