用c语言删去两个字符串中相同的字符
时间: 2024-05-07 08:19:40 浏览: 101
可以使用双重循环遍历两个字符串,对于每个字符,判断是否在另一个字符串中出现过,如果出现过,则在两个字符串中都将其删除。代码如下:
```c
#include <stdio.h>
#include <string.h>
void remove_common_chars(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int i, j, k;
for (i = 0; i < len1; i++) {
for (j = 0; j < len2; j++) {
if (str1[i] == str2[j]) {
// 删除str1中的该字符
for (k = i; k < len1; k++) {
str1[k] = str1[k + 1];
}
len1--;
i--;
// 删除str2中的该字符
for (k = j; k < len2; k++) {
str2[k] = str2[k + 1];
}
len2--;
j--;
}
}
}
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
remove_common_chars(str1, str2);
printf("删除相同字符后的第一个字符串为:%s\n", str1);
printf("删除相同字符后的第二个字符串为:%s\n", str2);
return 0;
}
```
需要注意的是,在删除字符的过程中,由于字符串长度发生了改变,所以需要及时更新字符串的长度。此外,删除字符的方式可以有多种,上述代码中使用的是将该字符之后的所有字符前移一位的方式。
阅读全文