2.编写一个 C 函数,接受一个字符串作为参数,计算该字符串中每个字符出现的次数,并将结果存储在一个数组中返回
时间: 2023-12-26 12:21:28 浏览: 139
好的,以下是一个计算字符串中每个字符出现次数的 C 函数:
```c
#include <stdio.h>
#include <string.h>
#define CHAR_NUM 256
int* charCount(char* str) {
int len = strlen(str);
int* count = calloc(CHAR_NUM, sizeof(int)); // 用calloc初始化数组为0
for (int i = 0; i < len; i++) {
count[(int)str[i]]++;
}
return count;
}
int main() {
char str[100];
printf("请输入一个字符串: ");
scanf("%s", str);
int* count = charCount(str);
for (int i = 0; i < CHAR_NUM; i++) {
if (count[i] != 0) {
printf("字符 %c 出现了 %d 次\n", (char)i, count[i]);
}
}
free(count); // 记得释放动态内存
return 0;
}
```
这个函数中,我们首先使用 `strlen()` 函数计算出字符串的长度,然后使用 `calloc()` 函数初始化一个长度为 256 的数组 `count`,用来存储每个字符出现的次数。接着,我们遍历字符串中的每个字符,将其在 `count` 数组中对应的计数器加 1。最后,我们返回 `count` 数组的指针。
在 `main()` 函数中,我们首先读入一个字符串,然后调用 `charCount()` 函数计算每个字符出现的次数,并打印出来。注意,在使用完 `count` 数组后,我们需要使用 `free()` 函数将其释放掉。
阅读全文