c++实现输入一个字符串s,求出在 s 中出现次数最多的字母的出现次数。
时间: 2023-02-09 21:16:12 浏览: 118
可以使用一个数组或哈希表来存储每个字母出现的次数, 然后遍历整个字符串统计每个字母出现的次数,最后在遍历一次数组/哈希表来找到出现次数最多的字母的出现次数。
具体代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[100];
int i, max = 0;
int count[26] = {0}; // 初始化全部为0
scanf("%s", s);
for (i = 0; i < strlen(s); i++) {
if (s[i] >= 'a' && s[i] <= 'z') {
count[s[i] - 'a']++;
}
}
for (i = 0; i < 26; i++) {
if (count[i] > max) {
max = count[i];
}
}
printf("%d\n", max);
return 0;
}
```
相关问题
帮我用C++写一个程序通过输入字符串,输出字符串中出现次数最多的字母及其出现次数。如果有多个字母出现次数一样,则按字符从小到大顺序输出字母及其出现次数。
好的,您的需求已经被记录下来了。关于您的问题,以下是程序的实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int count[26] = {0}; // 统计每个字母出现的次数
int max_count = 0;
printf("请输入字符串:");
scanf("%s", str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') { // 只统计小写字母
count[str[i] - 'a']++;
if (count[str[i] - 'a'] > max_count) {
max_count = count[str[i] - 'a'];
}
}
}
printf("出现次数最多的字母及其出现次数为:\n");
for (int i = 0; i < 26; i++) {
if (count[i] == max_count) {
printf("%c %d\n", i + 'a', count[i]);
}
}
return 0;
}
```
请注意:这只是一个简单的实现,没有进行输入错误检查和异常处理。为了使程序更加健壮,你可以添加一些额外的代码。
使用C++编写一个程序,接受一个字符串输入,计算并输出该字符串中出现次数最多的字符及其出现次数
以下是用C++编写的根据身份证号抽取10个幸运观众的随机算法:
``` c++
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
string s;
map<char, int> mp;
getline(cin, s); // 输入字符串
// 统计每个字符出现的次数
for (int i = 0; i < s.size(); i++) {
if (isalpha(s[i])) { // 判断是否为字母
mp[s[i]]++; // 统计字符出现次数
}
}
// 找到出现次数最多的字符及其出现次数
char maxChar = ' ';
int maxCount = 0;
for (auto it = mp.begin(); it != mp.end(); it++) {
if (it->second > maxCount) {
maxChar = it->first;
maxCount = it->second;
}
}
// 输出结果
cout << "出现次数最多的字符是:" << maxChar << endl;
cout << "它出现的次数是:" << maxCount << endl;
return 0;
}
```
在上述代码中,我们首先使用getline函数从标准输入中读取一个字符串。然后,我们使用一个map来统计每个字符出现的次数,其中key是字符,value是出现次数。接下来,我们遍历字符串,判断每个字符是否为字母,如果是,就在map中增加对应字符的出现次数。最后,我们遍历map,找到出现次数最多的字符及其出现次数,并输出结果。
阅读全文