本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
代码如下:
#include <stdio.h>
int main () {
char a,b;
int count=0;
scanf("%c",&a);
while(a!='\n') {
b=a;
scanf("%c",&a);
if((a==' '||a=='\n')&&b!=' '&&b!='\n') {
count++;
}
}
printf("%d",count);
return 0;
}
代码的核心思想:设置两个字符变量,a通过循环接收用户输入,b是a的上一次值,相当于两个指针。这样可以保证a始终代表当前输入的字符串的尾部,且b和a指向一前一后,判断起来会很方便。这样判断情况就是:如果b既不是空格也不是回车的同时a是空格或者回车就算作一个单词(也就是以一个单词的结尾作判定)。
这道题目我看很多人都用到了数组,我想的是数组的存储空间毕竟是有限的,题目中输入的单词长度没有限制,如果单词足够长的话,数组显然就行不通了。