用C语言字符串合并,不允许字符重复
时间: 2023-11-23 15:07:00 浏览: 84
可以使用两个指针分别指向两个字符串,然后遍历其中一个字符串中的每个字符,判断是否在另一个字符串中出现过,如果没有出现过,则将其添加到新的字符串中。具体实现可以参考以下代码:
```c
void mergeStrings(char* str1, char* str2, char* result) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 处理字符串1
for (int i = 0; i < len1; i++) {
if (strchr(str2, str1[i]) == NULL) { // 判断是否在字符串2中出现过
*result++ = str1[i]; // 添加到结果字符串中
}
}
// 处理字符串2
for (int i = 0; i < len2; i++) {
if (strchr(str1, str2[i]) == NULL) { // 判断是否在字符串1中出现过
*result++ = str2[i]; // 添加到结果字符串中
}
}
*result = '\0'; // 添加字符串结尾标记
}
```
使用方法示例:
```c
char str1[] = "hello";
char str2[] = "world";
char result[11]; // 结果字符串最长为两个字符串长度之和(不包括重复字符)
mergeStrings(str1, str2, result);
printf("%s", result); // 输出 "helowrd"
```
阅读全文