C++:单词数量、长度统计

问题:

在进行文章重复度检查时,经常需要统计一段英文中的单词数量,并找出长度最长的单词。

设有如下定义:char str[500];

编写程序,通过利用cin.getline(str,500);实现从键盘输入一小段英文(其中可以包含空格,但在同一行),利用函数统计该段英文中包含几个单词,输出统计出的单词数量、最长单词的长度以及长度最长的单词空格隔开。

注意:函数声明使用void split(char *str);如果有最长的单词不只一个,输出最先找到的那个。

代码:

#include<iostream>
#include<algorithm>
using namespace std;
void split(char*str);
int main() 
{
	char str[500];
	cin.getline(str,500);
	split(str);
	return 0; 
}
//如果有最长的单词不只一个,输出最先找到的那个 
void split(char*str)
{
	//tempw为最长单词在word数组中的位置,templ为最长单词的长度 
	int tempw=0,templ=0,i=0,m=0,n=0;
	//将分割后的单词存入word数组 
	char word[500][500];
	//当该段英文没有结束时 
	while(str[i]!='\0')
	{
		//当遇到空格时,当前为一个单词 
		if(str[i]==' ')
		{
			//比较当前单词长度与templ,若当前单词长度大于templ,则将m赋值给tempw,n赋值给templ 
			if(n>templ)
			{
				tempw=m;
				templ=n;
			}
			//当前单词分割完成,分割下一个单词 
			m++; 
			n=0;
		}
		//没遇到空格时,即当前单词没有完成分割 
		else
		{
			//记录单词 
			word[m][n]=str[i];
			n++;
		}
		i++;
	} 
	cout<<"单词的数量:"<<++m<<endl;
	cout<<"最长单词的长度:"<<templ<<endl;
	cout<<"长度最长的第一个单词:";
	for(int j=0;j<templ;j++)
	{
		cout<<word[tempw][j];
	} 
}

运行结果:

 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值