c实现统计字符中单词的个数,单词之间用空格分隔开。
今日网上训练遇到一题,有意义,故记之。
题目:输入一行字符,统计字符中单词的个数,单词之间用空格分隔开。
解题思路:<1>若测出某一个字符为非空格,且它前一个字符是空格,则表示“新单词开始”。设一初值为0的num变量,新单词开始则num累加1。
<2>判断前一字符是否为空格?设一个变量表示即可。
代码如下:
1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 char string[81]; 6 int i, num = 0, word = 0; 7 char c; 8 gets(string);//输入一个字符串放在字符数组string中 9 for (i = 0; (c = string[i]) != '\0'; i++) 10 { 11 if (c == ' ')//如果是当前字符是空格字符,使word置0 12 { 13 word = 0; 14 } 15 else if (word == 0)//如果不是空格字符,且前一字符是空格 16 { 17 word = 1; 18 num++; 19 } 20 } 21 printf("num=%d\n", num); 22 system("pause"); 23 return 0; 24 }
结果: