准确计算单词个数

本文介绍了如何使用C++编程语言避免空格计数的局限,采用全新思路检测连续字母作为单词边界,通过`gets`和`fgets`函数获取输入并计算字符串中单词的数量。
摘要由CSDN通过智能技术生成
计算单词个数

老规矩,先分析,再写思路,最后上代码。 

1.统计单词个数,我一开始想到用空格+1来计算,但是有的题就故意刁难你,如

所以我们换一种思路;

2.全新思路: 字符串str[i]为字母,而它下一个str[i+1]不是字母为一个单词

3.上代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
	char str[101];
	int num=0,i;
	gets(str);               //111   输入字符串储存在str数组中 
	for(int i=0;str[i] != '\0';i++)   //222  不遇到字符串结尾的\0,不会结束 
	    if(((str[i] >= 'A' && str[i] <= 'Z') || (str[i]>='a'&&str[i]<='z')) 
		&& !((str[i+1]>='A'&&str[i+1]<='Z')||(str[i+1]>='a'&&str[i+1]<='z')))     
		//33333  str[i]为字母,而它下一个不是字母为一个单词 
	        {
		num++;}
	    cout<<num<<endl;
	return 0;
}
小补充:

gets函数与fgets函数:两个都是输入字符数组,但fgets更全面;

gets格式(用数组char str[101]为例

gets(str);

fgets格式

fgets(str,sizeof(str),stdin);

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值