如何用C语言编程实现输出两个字符串中重合的字母?
时间: 2024-12-20 09:30:50 浏览: 15
在C语言中,你可以通过遍历两个字符串并逐个字符比较的方式来找出它们共有的字符。下面是一个简单的步骤描述:
1. 定义两个字符串指针,分别指向这两个需要比较的字符串。
2. 创建一个临时数组或集合(如`char common_chars[256]`),用于存放公共字符,这里假设最多只有256种可能的ASCII字符。
3. 使用`for`循环遍历第一个字符串的每个字符,同时用`if`条件检查这个字符是否已经在临时数组中(比如通过ASCII值)。如果不在,就将它添加到临时数组中。
4. 再次用`for`循环遍历第二个字符串,对于每一个字符,同样检查是否在临时数组中。如果是,说明这个字符是重合的,可以打印出来。
5. 结束循环后,临时数组中剩下的就是两个字符串共同的部分。
以下是部分伪代码示例:
```c
#include <stdio.h>
#include <string.h>
void find_common_chars(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 初始化一个字符计数数组
for (int i = 0; i < 256; i++) {
common_chars[i] = 0;
}
// 统计str1中的字符
for (int i = 0; i < len1; i++) {
common_chars[str1[i]]++;
}
// 检查str2中的字符,并打印重合的字符
for (int j = 0; j < len2; j++) {
if (common_chars[str2[j]]) {
printf("%c ", str2[j]); // 打印字符
common_chars[str2[j]]--; // 减少计数
}
}
}
int main() {
char str1[] = "hello";
char str2[] = "world";
find_common_chars(str1, str2);
return 0;
}
```
阅读全文