本文共 1486 字,大约阅读时间需要 4 分钟。
要解决找出一段给定文字中出现最频繁的英国字母的问题,可以按照以下步骤编写程序:
包含必要的头文件:需要访问标准输入流和字符分类函数,因此需要包含<iostream>
和<cctype>
头文件。
初始化变量:创建一个大小为26的整数数组nums
,用于记录每个英文字母的出现次数。同时,设置变量maxNum
记录当前最大出现次数,maxIndex
记录对应的字母位置。
读取输入:使用getline
函数读取完整输入行,s
字符串包含所有字符,包括空格和字母。
遍历字符串:对每个字符进行检查:
isalpha
函数判断是否为字母。nums
数组中,更新计数。输出结果:根据最大值和索引找到对应的字母,输出字母及其出现次数。
下面是优化后的完整代码:
#include#include #include #include using namespace std;int main() { string s; getline(cin, s); vector nums(26, 0); int maxNum = 0; int maxIndex = 26; // sqlite 类似于初始最大值 for (char c : s) { if (isalpha(c)) { // 检查是否为字母 char lower_c = tolower(c); // 转换为小写 int index = lower_c - 'a'; nums[index]++; if (nums[index] > maxNum) { maxNum = nums[index]; maxIndex = index; } else if (nums[index] == maxNum && index < maxIndex) { maxIndex = index; } } } char resultChar = 'a' + maxIndex; cout << resultChar << " " << maxNum << endl; return 0;}
代码解释:
<iostream>
和<cctype>
,以便读取输入和处理字符。vector<int> nums(26, 0);
创建一个大小为26的整数数组,记录每个字母的出现次数。getline
读取完整输入行,包括空格。注意事项:
转载地址:http://qkmaz.baihongyu.com/