输入样例 aaaaaaabbbbbccdddd 0 输出样例 19 a:7 b:5 c:2 d:4 编写函数统计输入字符串每个字母个数,并存入数组中C语言
时间: 2024-12-15 18:17:48 浏览: 2
在C语言中,你可以创建一个名为`count_chars`的函数,它接受一个字符串作为输入并返回一个字符计数的数组。下面是一个简单的实现步骤:
```c
#include <stdio.h>
#include <string.h>
// 定义一个结构体来存储字符及其对应的计数
typedef struct {
char ch;
int count;
} CharCount;
// 函数来统计字符并返回结果数组
CharCount* count_chars(char *str) {
int len = strlen(str);
CharCount counts[26]; // 假设我们只考虑ASCII字符,最多26种
memset(counts, 0, sizeof(counts)); // 初始化所有计数为0
for (int i = 0; i < len; ++i) {
if ('a' <= str[i] && str[i] <= 'z') { // 对于小写字母
counts[str[i] - 'a'].count++;
} else if ('A' <= str[i] && str[i] <= 'Z') { // 对于大写字母
counts[str[i] - 'A'].count++;
}
}
return counts;
}
// 打印字符计数
void print_counts(CharCount* counts) {
for (int i = 0; i < 26; ++i) {
if (counts[i].count > 0) {
printf("%c: %d\n", counts[i].ch, counts[i].count);
}
}
}
int main() {
char input[] = "aaaaaaabbbbbccdddd";
CharCount* result = count_chars(input);
print_counts(result);
free(result); // 记得释放内存
return 0;
}
```
在这个程序中,`count_chars`函数计算每个字母的数量,`print_counts`函数用于打印结果。注意,这个代码假设输入只包含ASCII字母,如果不是这样,你需要扩展结构体和处理范围。
阅读全文