请编写程序,找出一段给定文字中出现最频繁的那个英文字母。
输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。
在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。
This is a simple TEST. There ARE numbers and other symbols 1&2&3...........
e 7
1.使用getline(cin,string)函数获取一行所有输入
2.然后逐个标记字符出现的次数,将大写字母的次数加入小写字母中,然后比较依次从a开始找出小写字母出现频率最高的字母,将最高次数存入maxTime,对应ascii下标存入maxIndex,然后输出
1 #include <iostream> 2 #include <string> 3 #include <vector> 4 using namespace std; 5 int main(){ 6 int maxTime{0},maxIndex{0}; 7 string str; 8 vector<int> alpha(129,0); 9 getline(cin, str); 10 for(int i=0;i<str.size();i++){ 11 alpha[str[i]]+=1; 12 } 13 for(int i=65;i<92;i++){//65是‘A‘的ascii码 91是‘Z‘ 14 alpha[i+32]+=alpha[i]; 15 } 16 for(int i=95;i<122;i++){//95是‘a‘ 121是‘z‘ 17 if(alpha[i]>maxTime){ 18 maxTime=alpha[i]; 19 maxIndex=i; 20 } 21 } 22 cout << static_cast<char>(maxIndex)<< " "<< maxTime<<endl; 23 return 0; 24 }
PTA basic 1042 字符统计 (20 分) c++语言实现(g++)
原文:https://www.cnblogs.com/ichiha/p/14737464.html