习题6-8 统计一行文本的单词个数(15 分)

统计字符单词数
本文介绍了一个简单的C语言程序,用于统计一行字符中的单词数量。通过逐字符读取并判断是否为字母或数字来识别单词。

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

输入格式:

输入给出一行字符。

输出格式:

在一行中输出单词个数。

输入样例:

Let's go to room 209.

输出样例:

5
// 学过数组和字符串以后 比较好做 

#include <stdio.h>
int main()
{
	char a;
	int cnt=0,countword=0;

  	while(1){
  		scanf("%c",&a);
  		//读到回车 就结束循环 输出答案 
		if(a=='\n'){    
			break;
		}else if(a!=' '){ //  不为空格且  满足下面条件的就为一个单词 
			if(a>='a'&&a<='z'||a>='A'&&a<='Z'||a>='0'&&a<='9')	{
				countword++;   
				cnt++;   //cnt是为了 统计字母长度 
			}
				while(1){
					scanf("%c",&a);
					if(a==' '||a=='\n'){ /// 读到空格或者回车说明这个字母结束了  
						break;
					}
					cnt++;
				}
				//循环结束后 字母长度大于1的 countword加1  等于1的已经统计过了 
			  // 之所以统计cnt 是为了防止读一个字母以后 立刻读入了空格或者回车 造成重复相加 
			if(cnt>1){
				if(a>='a'&&a<='z'||a>='A'&&a<='Z'||a>='0'&&a<='9')	countword++; 
			}
			if(a=='\n'){
				break;//这个break 和上面的第二个break 联系在一起 跳出整个循环; 
			}
		} 
	}

  	printf("%d",countword);
    return 0;
}

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CLiuso

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值