一,问题描述
二,问题分析
1.统计出现最多字符的个数,最简单的思路就是对整个字符串遍历,用一个整型数组进行统计出现次数
2.统计时不区分大小写,所以大小的字母要统计到小写字母上
3.ASCII码中 大写字母65到90 小写字母为大写字母对应加32
4.最后遍历数组,找出最大值,其下标对应的ASCII码就是出现出现次数最多的字符
三,代码解答
#include<iostream>
#include<string>
using namespace std;
string str;
int arr[123];
int main() {
getline(cin, str); //string接受空格输入
for (int i = 0; i < str.size(); i++) {
if (int(str[i]) >= 65 && int(str[i]) < 91) { //如果是大写字母
arr[int(str[i]) + 32]++; //统计时按小写字母算
}
else if ((int(str[i]) >= 97) &&( int(str[i]) < 123)) {
arr[int(str[i])]++;
}
}
int max = 0;
int maxIndex;
for (int i = 97; i < 123; i++) { //找出统计数组中的最大值和对应下标
if (arr[i] > max) {
max = arr[i];
maxIndex = i;
}
}
cout << char(maxIndex) << " " << max;
return 0;
}