用c语言,求串s所含不同字符的总数和每种字符的个数
时间: 2024-12-16 07:25:10 浏览: 2
插入子串操作-字符串的相关知识
在C语言中,你可以使用哈希表(如`std::unordered_map`或`map`)来计算字符串`s`中不同字符的总数和每个字符的个数。以下是一个简单的示例代码:
```c++
#include <stdio.h>
#include <unordered_map>
// 定义一个结构体用于存储字符及其计数
typedef struct {
char ch;
int count;
} CharCount;
void countCharacters(char *str) {
// 初始化一个空的哈希表
std::unordered_map<char, CharCount> charMap;
// 遍历字符串
for (char c : str) {
// 如果字符已经在地图中,增加计数
if (charMap.find(c) != charMap.end()) {
charMap[c].count++;
} else {
// 否则,添加新的键值对,初始计数为1
charMap[c] = {c, 1};
}
}
// 输出结果
printf("不同字符的总数: %zu\n", charMap.size());
for (const auto &entry : charMap) {
printf("%c 出现次数: %d\n", entry.first, entry.second.count);
}
}
int main() {
char str[] = "hello world";
countCharacters(str);
return 0;
}
```
在这个程序中,`countCharacters`函数接收一个字符串作为输入,遍历它并将每个字符及其出现次数存储在哈希表中。最后,它会打印出不同字符的数量以及每个字符的具体计数。
阅读全文