C++编写一个函数,接受一个字符串作为参数,计算该字符串中每个字符出现的次数,并将结果存储在一个数组中返回。
时间: 2024-12-29 09:35:47 浏览: 7
在C++中,你可以创建一个名为`countCharacters`的函数,它接收一个`std::string`类型的参数,并使用`std::map`数据结构来存储每个字符及其出现的次数。这里是一个简单的示例:
```cpp
#include <string>
#include <map>
std::vector<int> countCharacters(const std::string& str) {
std::map<char, int> charCount;
for (char c : str) {
if (charCount.find(c) != charCount.end()) {
charCount[c]++;
} else {
charCount[c] = 1;
}
}
// 将map转换成vector,因为map的key不能直接排序
std::vector<std::pair<char, int>> vec(charCount.begin(), charCount.end());
std::sort(vec.begin(), vec.end());
// 创建新的vector只包含字符计数
std::vector<int> result(vec.size());
for (size_t i = 0; i < vec.size(); ++i) {
result[i] = vec[i].second;
}
return result;
}
// 示例用法
int main() {
std::string input = "hello world";
std::vector<int> counts = countCharacters(input);
for (int count : counts) {
std::cout << "字符 '" << static_cast<char>(counts.index()) << "' 出现了 " << count << " 次\n";
}
return 0;
}
```
这个函数首先遍历输入字符串,统计每个字符的出现次数,然后将`std::map`转换为`std::vector`以便于按字母顺序返回结果。注意,为了获取字符在输出向量中的索引,我们使用`static_cast<char>(counts.index())`。
阅读全文