今日网上训练遇到一题,有意义,故记之。
题目:输入一行字符,统计字符中单词的个数,单词之间用空格分隔开。
解题思路:<1>若测出某一个字符为非空格,且它前一个字符是空格,则表示“新单词开始”。设一初值为0的num变量,新单词开始则num累加1。
<2>判断前一字符是否为空格?设一个变量表示即可。
代码如下:
1 #include2 #include 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置012 {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 }
结果: