写一个函数用来统计字符串中各字母出现的次数。c++ 示例: 输入:X2Y3XZ,输出:X3Y3Z1; 输入:Z3X(XY)2,输出:X3Y2Z3: 输入:Z4(Y2(XZ2)3)2X2,输出:X8Y4Z16:
时间: 2024-10-27 20:06:46 浏览: 21
写自定义函数stringLower()实现将一个字符串中所有大写字母变为小写字母。在主函数中输入一含有大写字母的字符串,调用该函数并输出改变后的字符串。
5星 · 资源好评率100%
你可以使用C++编写一个函数来统计字符串中各字母及其出现的次数。这里是一个简单的例子,我们将创建一个名为`countLetters`的函数,它接受一个字符串作为参数,并返回一个map存储每个字符及其计数。
```cpp
#include <iostream>
#include <string>
#include <map>
std::map<char, int> countLetters(const std::string& input) {
std::map<char, int> letterCount;
for (char c : input) {
if (std::isalpha(c)) { // 检查是否为字母
letterCount[c]++; // 如果是字母,增加其计数
}
}
return letterCount;
}
int main() {
std::string test1 = "X2Y3XZ";
std::cout << "Output of test1: ";
for (const auto &pair : countLetters(test1)) {
std::cout << pair.first << ": " << pair.second << ", ";
}
std::cout << "\n";
std::string test2 = "Z3X(XY)2";
std::cout << "Output of test2: ";
for (const auto &pair : countLetters(test2)) {
std::cout << pair.first << ": " << pair.second << ", ";
}
std::cout << "\n";
std::string test3 = "Z4(Y2(XZ2)3)2X2";
std::cout << "Output of test3: ";
for (const auto &pair : countLetters(test3)) {
std::cout << pair.first << ": " << pair.second << ", ";
}
std::cout << "\n";
return 0;
}
```
运行上述程序,你会得到预期的输出结果:
1. 输出: X: 3, Y: 3, Z: 1,
2. 输出: X: 3, Y: 2, Z: 3,
3. 输出: X: 8, Y: 4, Z: 16,
阅读全文