c++统计字符串中各字母频率,输入完数据,按下回车,不显示预期的结果,而是直接退出,程序如下

c++统计字符串中各字母频率,输入完数据,按下回车,不显示预期的结果,而是直接退出,程序如下,第1张

#include<stdioh>

#include<stringh>

#include<iostream>

using namespace std;

void main()

{

    char str[200];

    int freq[26]={0};

    int n_max=0;

    gets(str);

    

    for(int i=0;i<strlen(str);i++)

    {

        if(str[i]>='a'&&str[i]<='z')

            n_max=max(++freq[str[i]-'a'],n_max);//应该是str[i]-'a'

        else if(str[i]>='A'&&str[i]<='Z')

            n_max=max(++freq[str[i]-'A'],n_max);//应该是str[i]-'a'

    }

    while(n_max)

    {

        for(int i=0;i<26;i++)

        {

            if(freq[i]==n_max)

            {

                cout<<char('a'+i)<<"\t"<<n_max<<endl;

            }

        }

        n_max--;

    }

}

看我旁边做的注解

cnt(s,array); /调用子函数cnt,并传给参数s, array。s是字符数组,相当于字符串指针;array是数组好理解/

for(i=0;i<26;i++)

printf("%d",array[i]); / for循环 依次输出26个字母出现的次数。这里%d后面加个空格或逗号分隔才好 /

printf("\n");

子函数

void cnt(char p,int arr[]) / 第一个参数是字符串指针,第二个参数是整型数组 /

{

int i;

for(i=0;i<26;i++) /数组初始化/

arr[i]=0; / 26个字母的个数全初始设置为0 /

while(p) / 循环,p表示取指针p所指的字符,如果为0则表示字符串结束,退出循环 /

{

if(p>='a'&&p<='z') /数组元素判断/ / 判断是否是a到z的字母,若是才统计/

arr[p-'a']++; /p与字母a的差值刚好就是数组arr下标/ / 字母a对应数组的下标是0, b是1,依次类推 /

p++; / 指针加1, 指向后面一个字符 /

}

}

这样可以么?

这个貌似比较难,可以尝试自己编程序检测,要用到文件的输入输出。但是用电脑做的话,时间也不会太长,就是需要从头扫描到尾

我尝试用c++做了以下,经过努力,目前已经差不多了,如果想要做,得把你的文件转换成txt的,这样就可以尝试进行了。不过这个工作还是比较麻烦的,所以一定的酬劳应该不是过分的要求

给你看一个统计结果:

经过对输入文本的检测分析,本次分析结果如下

总字符数1372

汉字数目(含中文标点):684字母数目:0英文标点数目:4

以上三项均不属于的字符数:0

对于三非字符不做详细讨论,下面是其余三项的统计结果

用到的不同汉字数目(含中文标点)为:257

不重复汉字及其出现频数、频率如下

新10146199%

华10146199%

社10146199%

伦10146199%

敦10146199%

810146199%

10146199%

日20292398%

奥10146199%

运40584795%

专30438596%

电10146199%

记10146199%

者10146199%

吴10146199%

俊10146199%

宽10146199%

、20292398%

岳10146199%

东10146199%

兴10146199%

国50730994%

家30438596%

体10146199%

育10146199%

总10146199%

局10146199%

田20292398%

管20292398%

中7102339%

心40584795%

主20292398%

任20292398%

杜20292398%

兆20292398%

才20292398%

和10146199%

副10146199%

冯30438596%

树30438596%

勇30438596%

810146199%

战10146199%

邮10146199%

懿10146199%

煞10146199%

檬10146199%

彼10146199%

担10146199%

10146199%

跸10146199%

10146199%

510146199%

蚴10146199%

苌10146199%

舜10146199%

渴10146199%

粢10146199%

馔10146199%

猓10146199%

10146199%

奕10146199%

饲10146199%

科10146199%

人40584795%

10146199%

鋈10146199%

10146199%

!10146199%

 11160819%

∷10146199%

10146199%

腔10146199%

谷10146199%

啡10146199%

希20292398%

10146199%

10146199%

比30438596%

赛9131579%

右20292398%

脚20292398%

跟30438596%

腱30438596%

断30438596%

裂30438596%

的14204678%

刘10146199%

翔10146199%

将20292398%

在40584795%

英30438596%

接30438596%

受50730994%

手40584795%

术40584795%

。14204678%

*** 10146199%

刀10146199%

医11160819%

生50730994%

是7102339%

给10146199%

贝20292398%

克20292398%

汉20292398%

姆20292398%

等20292398%

治20292398%

疗50730994%

过20292398%

名20292398%

他40584795%

们30438596%

表30438596%

示20292398%

,12175439%

遭10146199%

遇10146199%

突10146199%

如20292398%

其10146199%

来20292398%

伤50730994%

纯10146199%

属10146199%

意20292398%

外20292398%

绝10146199%

不20292398%

会40584795%

明10146199%

知30438596%

有50730994%

还20292398%

要20292398%

逼20292398%

着20292398%

出20292398%

针10146199%

对20292398%

界10146199%

为40584795%

何10146199%

坚10146199%

持10146199%

参30438596%

质10146199%

疑20292398%

解10146199%

释10146199%

说10146199%

:10146199%

“20292398%

前20292398%

充10146199%

满10146199%

信10146199%

认10146199%

预10146199%

没20292398%

问20292398%

题20292398%

自10146199%

己10146199%

本20292398%

身10146199%

也10146199%

识10146199%

到20292398%

这20292398%

么20292398%

严10146199%

重10146199%

产10146199%

果10146199%

我30438596%

道10146199%

现10146199%

情10146199%

肯10146199%

定20292398%

阻10146199%

止10146199%

更10146199%

可10146199%

能10146199%

加10146199%

保10146199%

护10146199%

动30438596%

员20292398%

第10146199%

一20292398%

原10146199%

则10146199%

”10146199%

透10146199%

露10146199%

选10146199%

目10146199%

已10146199%

经20292398%

基10146199%

确20292398%

该10146199%

学10146199%

领10146199%

域10146199%

曾10146199%

多20292398%

位10146199%

实20292398%

施20292398%

最30438596%

近10146199%

两10146199%

天10146199%

内10146199%

进20292398%

行20292398%

后20292398%

场10146199%

了10146199%

初10146199%

步10146199%

检20292398%

查20292398%

当20292398%

时10146199%

就10146199%

怀10146199%

随10146199%

被10146199%

送10146199%

往10146199%

院20292398%

核10146199%

磁10146199%

共10146199%

振10146199%

诊10146199%

代10146199%

团10146199%

马10146199%

上10146199%

同10146199%

地10146199%

机10146199%

构10146199%

联10146199%

系10146199%

望10146199%

找10146199%

好20292398%

年10146199%

直10146199%

^^^^^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^

用到的不同字母数目为:0

不重复字母及其出现频数、频率如下

@_@$$$$$$$$$$$$$$$$$$$$$$@_@$$$$$$$$$$$$$$$$$$$$$$$$$@_@

用到的不同英文标点数目为:2

不重复英文标点及其出现频数、频率如下

(250%

)250%

此次统计结束,谢谢您的使用

^_^ T_T ^#^ Q_Q O_O P_P R_R S_S W_W M_M

进行计算的文本是:

新华社伦敦8月8日奥运专电(记者吴俊宽、岳东兴)国家体育总局田管中心主任杜兆才和副主任冯树勇8日接受采访时说,刘翔35万受伤纯属意外,无人强迫他出赛。他们还确认,在7日比赛中右脚跟腱断裂的刘翔将在英国接受手术。 *** 刀的医生是给贝克汉姆等人治疗过的名医。他们表示,刘翔在比赛中遭遇突如其来的受伤纯属意外。田管中心绝不会明知刘翔有伤,还要逼着他出赛。针对外界对为何刘翔有伤还要坚持参赛的质疑,冯树勇解释说:“赛前刘翔充满信心,认为预赛是没有问题的。他自己本身也没有意识到会有这么严重的问题产生。如果我们知道会出现伤情肯定会阻止他参赛的,更不可能逼着刘翔参加比赛。保护运动员是我们的第一原则。”杜兆才透露,医生人选目前已经基本确定。该医生是英国人,是运动医学领域中的专家,曾经为贝克汉姆等多位知名运动员实施过手术。刘翔的手术将在最近两天内进行。冯树勇表示,刘翔受伤后在赛场医疗中心接受了初步检查,当时就怀疑是跟腱断裂。随后刘翔被送往医院接受核磁共振检查,确诊是右脚跟腱断裂。中国代表团的医疗专家马上同英国当地医疗机构进行联系,希望为刘翔找到最好的医院、最好的医生实施手术治疗。“这么多年来我一直很佩服他能够静下心来,”杜兆才说。“刘翔29岁了,是个名人,但他依然能够耐得住寂寞,每天坚持训练场、食堂、宿舍三点一线的生活。刘翔承载着巨大的期待和压力,他真的已经尽心尽力了。”他说:“刘翔是一个参加了三届奥运会的老队员,特别是在四年过程中,他经历了治疗、康复,成绩又提高到一个很高的水平。昨天的伤病纯属意外,但是他在受伤后所展现出的精神价值远远大于金牌的价值。”(完)

以上就是关于c++统计字符串中各字母频率,输入完数据,按下回车,不显示预期的结果,而是直接退出,程序如下全部的内容,包括:c++统计字符串中各字母频率,输入完数据,按下回车,不显示预期的结果,而是直接退出,程序如下、c语言 统计字母频率、如何对一篇长达十几万字的文本进行“汉字字符频率统计”(比如统计“在”的出现频率。)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10627769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存