c语言中统计并输出两个字符串中共有多少相同的字母,以及这些字母和它们各自的出现次数。。
时间: 2024-10-04 07:01:28 浏览: 39
c代码-C语言编写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出
在C语言中,你可以通过遍历两个字符串,同时使用哈希表或者数组来统计共同的字符及其出现次数。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
#define SIZE 26 // 假设我们只关心英文字母,ASCII码范围
// 定义一个结构体来存储字符及其出现次数
typedef struct {
char ch;
int count;
} CharCount;
void count_common_chars(char* str1, char* str2) {
CharCount hash[SIZE]; // 初始化一个大小为26的数组来存放每个字母及其计数
memset(hash, 0, sizeof(hash));
for (int i = 0; str1[i] && str2[i]; i++) { // 遍历两个字符串
if (str1[i] == str2[i]) { // 如果字符相等
hash[str1[i] - 'a'].count++; // 对应的计数加一
}
}
printf("Common characters and their counts:\n");
for (int i = 0; i < SIZE; i++) {
if (hash[i].ch != '\0') { // 只打印非空位置的字符和计数
printf("%c appears %d times.\n", hash[i].ch, hash[i].count);
}
}
}
int main() {
char str1[] = "hello world";
char str2[] = "world hello";
count_common_chars(str1, str2);
return 0;
}
```
这个程序会输出两个字符串中相同的字符及其出现次数。例如,对于给定的`str1 = "hello world"`和`str2 = "world hello"`,它将输出`o appears 2 times.`。
阅读全文