输出样例如图:
代码如下:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int n;
cout << "请输入行数:";
cin >> n;
cin.get();
int count[26] = { 0 };
for (int i = 0; i < n; i++)
{
char str[100];
cout << "请输入第" << i + 1 << "行字符串:";
cin.getline(str, 100);
int len = strlen(str);
for (int j = 0; j < len; j++)
{
if (isalpha(str[j]))
{
count[tolower(str[j]) - 'a']++;
}
}
}
cout << "各个字母出现次数如下:" << endl;
for (int i = 0; i < 26; i++)
{
if (count[i] != 0)
{
cout << (char)(i + 'a') << ": " << count[i] << endl;
}
}
return 0;
}
解释如下:
#include <cstring>
:包含 C 风格字符串处理头文件,用于使用strlen
函数。- 外层
for
循环:根据用户输入的行数n
进行迭代。char str[100];
:定义一个长度为 100 的字符数组str
,用于存储用户输入的每行字符串。cout << "请输入第" << i + 1 << "行字符串:";
:输出提示信息,要求用户输入第i+1
行的字符串。cin.getline(str, 100);
:从标准输入读取一行字符串,存储到str
中,最多读取 100 个字符。int len = strlen(str);
:计算输入字符串的长度。- 内层
for
循环:遍历输入字符串的每个字符。if (isalpha(str[j]))
:检查字符是否为字母。count[tolower(str[j]) - 'a']++;
:如果是字母,将其转换为小写(使用tolower
函数),并将其对应的数组元素加 1。通过tolower(str[j]) - 'a'
计算出该字母在count
数组中的索引,例如'a'
对应索引 0,'b'
对应索引 1,以此类推。
觉得有帮助就给博主点个关注叭~~
有问题的可以私信或者在评论区一起交流
友友们一起加油叭QAQ