用c编写算法,求串s所含不同字符的总数和每种字符的个数。不超过30行
时间: 2024-11-05 11:27:20 浏览: 20
C++实现字符串匹配的暴力算法
在C语言中,你可以使用哈希表(如数组或结构体)来计算字符串s中不同字符的数量以及每个字符的个数。这里是一个简单的示例,它将遍历字符串并统计字符:
```c
#include <stdio.h>
#include <string.h>
// 定义一个结构体用于存储字符及其计数
typedef struct {
char ch;
int count;
} CharCount;
// 函数来计算字符串中字符的数量
int countChars(char *s) {
CharCount charCounts[256]; // 假设ASCII字符集大小为256
int totalUnique = 0;
for (char c : s) {
if (charCounts[c] == NULL) {
charCounts[c].ch = c;
charCounts[c].count = 1;
totalUnique++;
} else {
charCounts[c].count++;
}
}
return totalUnique;
}
// 主函数展示如何使用
int main() {
char s[] = "hello world";
int uniqueChars = countChars(s);
printf("Total unique characters: %d\n", uniqueChars);
for (int i = 0; i < 256; ++i) {
if (charCounts[i]) { // 只有已遇到过的字符才会存在
printf("Character '%c': %d times\n", charCounts[i].ch, charCounts[i].count);
}
}
return 0;
}
```
这个程序首先初始化一个长度为256的CharCount数组,因为ASCII字符集中有256个字符。然后遍历字符串,对每个遇到的新字符增加其计数,并更新总独特字符数。最后,检查数组中是否仍有非零值,打印出每个字符及其出现次数。
阅读全文