c语言求字符数组交集
时间: 2024-12-16 16:25:22 浏览: 47
在C语言中,计算两个字符数组的交集通常是指找到这两个数组中共有的元素(字符)。这可以通过遍历其中一个数组,并检查该字符是否存在于另一个数组中来实现。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义交集函数
char* intersect(char array1[], char array2[], int len1, int len2) {
// 初始化一个新数组用于存储结果,假设结果最多只会有len1小的元素
char result[len1 + 1];
memset(result, '\0', sizeof(result)); // 初始化结果数组
for (int i = 0; i < len1; ++i) { // 遍历array1
if (strchr(array2, array1[i]) != NULL) { // 如果array1[i]在array2中
result[i] = array1[i]; // 将其添加到结果数组
}
}
// 结果数组最后一个位置可能是多余的'\0',如果需要去掉它,可以在这里修改
// 结果数组的长度减去1是因为数组下标从0开始
return result;
}
int main() {
char array1[] = "hello";
char array2[] = "world!";
int len1 = strlen(array1);
int len2 = strlen(array2);
char* intersection = intersect(array1, array2, len1, len2);
printf("Intersection of %s and %s is: ", array1, array2);
while (*intersection != '\0') {
printf("%c", *intersection++);
}
printf("\n");
// 释放内存,如果你使用的是动态分配的结果
free(intersection); // 这里仅作演示,实际应用中应根据实际情况处理内存管理
return 0;
}
```
在这个例子中,`intersect` 函数会返回一个新的字符数组,包含两个输入数组共有的字符。注意,这个程序不会检查两个字符串是否有完全相同的子串,只会找到每个单独的字符。
阅读全文
相关推荐


















