统计字符串里面哪个英文字母字符最多,并统计次数。

统计字符串里面哪个英文字母字符最多,并统计次数。
【输入形式】

第一行输入字符串。

【输出形式】

输出出现次数最多(相同则一起输出)的字符和次数,并用空格隔开。

【样例输入1】

定义一个长度为26的整型数组,记录每个字符出现的次数。
你要说明一下,要考虑大小写区分吗?也就是a和A算同一个字符么?

你可以看看:

#include <iostream>
#include <string.h>
#include <algorithm> 
using namespace std;
typedef struct
    {string ch;
    int total;
    }sum;
bool cmp1(sum a,sum b){
    return a.total>b.total;
}
int main()
{
    string str;
    
    
    getline(cin,str);
    int len=str.length();
    sum s[50];
    for(int i=0;i<len;i++)
    {
        int count=0;
        for(int j=0;j<len;j++)
        {
            if(str[i]==str[j])
            {
                ++count;
            }
            
        }
        s[i].ch=str[i];
        s[i].total=count;
    }
    sort(s,s+len,cmp1);
    cout<<s[1].total<<"  "<<s[1].ch<<endl;
    
    return 0;
    
}

不区分大小写,供参考:

#include <stdio.h>
int main()
{
    int  cnt[26] = {0}, max, i;
    char str[128];
    gets(str);
    for (i = 0;str[i];i++)
    {
        if (str[i]>='a' && str[i]<='z')
            cnt[str[i]-'a']++;
        else if (str[i]>='A' && str[i]<='Z')
            cnt[str[i]-'A']++;
    }
    for (i = 0,max = 0;i < 26;i++)
    {
        if (cnt[i] > max) max = cnt[i];
    }
    for (i = 0;i < 26;i++)
        if (cnt[i] == max)
            printf("%c:%d\n", i+'a', cnt[i]);
    return 0;
}