#109 统计一行字符的单词数

题目描述:

输入一行字符,统计其中包括多少单词,单词之间用空格分隔。

输入输出格式要求:
	输入格式:a b c d回车(空格可在任意位置,列如行头行尾可能会有空格。另外数字和字母一样,也可作为单词)
	输出格式:单词数
	输入的字符串长度最长为256个字符
例如:
输入:(空格)a a 112 c(空格)回车
输出:4

参考代码:

#include<stdio.h>
int main(){
	char s[300];
	int N=0,num=0;
	s[0]=32;
	do
	{
		N++;
		s[N]=getchar();
		if(s[N-1]==32&&s[N]!=32&&s[N]!=10) num++;
	}while(s[N]!=10);
	printf("%d",num);
	return 0;
}

讲解:

        本题目在判断单词的时候应该找准条件:一个单词,必与空格相邻。那么在判断的时候问题又来了:应该检测一个单词前面的空格好还是检测断单词后面的空格好呢?emmm,其实都可以。这里我选择的是检测单词前面的空格,这样可以边输入,边对单词进行计数。但如果输入的第一个字符就是字母,那岂不是检测不到第一个单词了?所以在第5行我做了一个巧妙的处理,将s[0]初始赋为空格,然后从s[1]开始输入单词,这样就可以检测到第一个单词了。

        如果想要检测单词后面的空格,那么可以先输入字符串,再在字符串的最后加一个空格,再用循环检测一遍就好啦。

求实求真,大气大为。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Fish_in_UESTC

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

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

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

打赏作者

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

抵扣说明:

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

余额充值