c语言中统计两个输入的字符串中共有多少相同的字母,以及这些字母和它们各自的出现次数。。
时间: 2024-10-04 15:01:28 浏览: 36
在C语言中,你可以通过遍历两个字符串并比较每个字符来实现这个功能。以下是一个简单的步骤说明:
1. **初始化计数数组**:创建一个大小与ASCII字符集相同的数组,用于存储每个字母出现的次数。例如,可以使用`char count[26]`,因为英文中有26个英文字母。
2. **读取和处理字符串**:对于第一个字符串中的每个字符,检查它是否在数组内,并将计数加一。如果不在数组内,可以考虑扩展数组,但在实际应用中,通常假设输入字符串只包含小写字母。
```c
for (int i = 0; input1[i] != '\0'; i++) {
count[tolower(input1[i]) - 'a']++;
}
```
3. **更新计数**:接着对第二个字符串做同样的操作,同时对比字符是否已经在第一个字符串中计算过。如果是,就增加相应字符的计数。
```c
for (int j = 0; input2[j] != '\0'; j++) {
int index = tolower(input2[j]) - 'a';
if (index >= 0 && index < 26) {
count[index]--;
}
}
```
4. **找出相同字母及其次数**:遍历计数数组,找到那些值大于0的元素,即两个字符串中都存在的字母和它们在两个字符串中的共同出现次数。
```c
for (int k = 0; k < 26; k++) {
if (count[k] > 0) {
printf("字母 '%c' 出现 %d 次\n", 'a' + k, count[k]);
}
}
```
阅读全文