c语言中输入两个字符串中共有多少相同的字母,以及这些字母和它们各自的出现次数。。
时间: 2024-10-04 09:01:28 浏览: 33
C++实现从输入中读取字符串
在C语言中,你可以通过循环遍历两个字符串并逐个比较字符的方式来计算共有多少相同的字母及其出现次数。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
// 输入两个字符串
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin);
str1[strcspn(str1, "\n")] = '\0'; // 去除fgets获取的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strcspn(str2, "\n")] = '\0'; // 去除换行符
int count[256] = {0}; // 初始化一个计数数组,长度为ASCII码范围大小
int commonCount = 0;
for (int i = 0; str1[i] != '\0'; i++) {
if (str2[i] != '\0') { // 只比较到较短的那个字符串的结束
if (str1[i] == str2[i]) {
count[(int)str1[i]]++; // 当前字符在两个字符串都存在,计数加一
commonCount++; // 统计共同的字符数量
}
}
}
printf("共有%d个相同的字母:\n", commonCount);
for (int i = 0; i < 256; i++) {
if (count[i] > 0) {
printf("%c出现了%d次\n", i, count[i]);
}
}
return 0;
}
```
这个程序首先读取两个字符串,然后初始化一个计数数组`count`来存储每个ASCII字符的出现次数。接着,它遍历两个字符串,如果发现相同的字符就增加相应的计数值,并更新共享字符总数`commonCount`。最后,打印出相同字符的数量和每个字符及其出现次数。
阅读全文