写一个函数用来统计字符串中各字母出现的次数。c++语言 示例: 输入:X2Y3XZ,输出:X3Y3Z1; 输入:Z3X(XY)2,输出:X3Y2Z3; 输入:Z4(Y2(XZ2)3)2X2,输出:X8Y4Z16;
时间: 2024-10-27 11:05:49 浏览: 47
在C++中,你可以创建一个名为`countLetters`的函数来统计字符串中各字母的出现次数。这里是一个简单的实现,使用了C++标准库中的`std::map`来存储字符及其对应的计数:
```cpp
#include <iostream>
#include <string>
#include <map>
std::map<char, int> countLetters(const std::string& str) {
std::map<char, int> letterCount;
for (char c : str) {
// 只考虑ASCII字母,忽略其他字符
if (isalpha(c)) {
char lower = tolower(c); // 转换为小写字母,统一计数
letterCount[lower]++;
}
}
return letterCount;
}
int main() {
std::string input = "X2Y3XZ";
std::map<char, int> result = countLetters(input);
for (const auto& pair : result) {
std::cout << pair.first << ": " << pair.second << "; ";
}
// 输出:X3Y3Z1;
// 对于其他输入,类似地调用并打印结果
std::string input2 = "Z3X(XY)2";
std::map<char, int> result2 = countLetters(input2);
std::cout << "\n" << input2 << ":\n" << result2;
std::string input3 = "Z4(Y2(XZ2)3)2X2";
std::map<char, int> result3 = countLetters(input3);
std::cout << "\n" << input3 << ":\n" << result3;
return 0;
}
```
阅读全文