c++实现“统计输入的string中重复次数最多的string”

本程序通过C++实现,能够接收用户输入的一串字符,并从中找出出现次数最多的单词及其出现频率。程序首先解析输入的字符串为独立的单词,然后统计每个单词的出现次数,最后输出重复最多的单词及该单词的重复次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
#include <vector>
#include <cmath>
#include <bitset>
#include <algorithm>
#include <cstddef>
#include <iomanip>


int main(int argc, char * argv[])
{
  
std::string input("");
std::cout<<"input some strings:"<<std::endl;
std::getline(std::cin,input);
int cnt(1);
for(std::string::size_type i=0;i<input.size()-1;++i)
{
if((::isalnum(input[i])||::ispunct(input[i]))&&(!::isalnum(input[i+1])&&(!::ispunct(input[i+1]))))
++cnt;
}
std::stringstream ss;
std::string * sptr=new  std::string[cnt];
ss<<input;
std::string temp;
int sentinel(0);
while(ss>>temp)
{
sptr[sentinel++]=temp;


}
size_t position(0),occur_time(1);
for(size_t i=0,j=1;i<cnt-1;)
{
while((i!=cnt-1)&&(sptr[i]==sptr[i+1]))
{
++i;
++j;
}
if(j>occur_time)
{
std::cout<<"目前重复最多字符串是:"<<sptr[position]<<"\t重复次数:"<<occur_time<<std::endl;
position=i-j+1;
occur_time=j;
}
++i;
j=1;
}
std::cout<<"最终重复最多字符串是:"<<sptr[position]<<"\t重复次数:"<<occur_time<<std::endl;


int temp111;
std::cin>>temp111;
return 0;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值