方法1:字母a-z,共有26个,建立一个数组,遍历整个字符串, 统计每一个字符个数,找出字符最多那个。其实如果考虑ASCII的全部的话是256.
#include<iostream>
using namespace std;
const int N=26;
struct Max
{
char apla;
int data;
};
Max findmax(char *a)
{
Max maxapla;
int i;
int count[N];
for(i=0;i<N;++i)count[i]=0;
while(*a!='\0')//注意判断
{
count[*a-'a']++;
a++;
}
maxapla.apla=0+'a';
maxapla.data=count[0];
for(i=1;i<N;++i)
{
if(maxapla.data<count[i])
{
maxapla.data=count[i];
maxapla.apla=i+'a';
}
}
return maxapla;
}
int main()
{
char *a="abdeadfdsfasdfasdfasdfasdfasdf";
Max maxvalue=findmax(a);
cout<<maxvalue.apla<<endl;
cout<<maxvalue.data<<endl;
}
来自CSDN dubiousway的code