一,問題描述
二,問題分析
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;
}