PTA习题6-8 统计一行文本的单词个数 (15分) (不用数组解决问题)

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

输入格式:

输入给出一行字符。

输出格式:

在一行中输出单词个数。

输入样例:

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是空格或者回车就算作一个单词(也就是以一个单词的结尾作判定)。

这道题目我看很多人都用到了数组,我想的是数组的存储空间毕竟是有限的,题目中输入的单词长度没有限制,如果单词足够长的话,数组显然就行不通了。

发布了52 篇原创文章 · 获赞 0 · 访问量 1243

猜你喜欢

转载自blog.csdn.net/qq_38501880/article/details/105007249