现有两个字符串s1和s2,它们最多都只能包含255个字符。编写程序,将字符串s1中所有出现在字符串s2中的字符删去,然后输出s1。我要完整的c语言程序
时间: 2024-05-02 12:20:45 浏览: 147
函数:字符串s1中删除串s2里包含的所有字符(c语言)
5星 · 资源好评率100%
以下是完整的C语言程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s1[256], s2[256];
int i, j, len1, len2;
// 读取输入字符串
printf("请输入字符串s1:\n");
fgets(s1, 256, stdin);
len1 = strlen(s1);
if (s1[len1 - 1] == '\n') {
s1[len1 - 1] = '\0';
len1--;
}
printf("请输入字符串s2:\n");
fgets(s2, 256, stdin);
len2 = strlen(s2);
if (s2[len2 - 1] == '\n') {
s2[len2 - 1] = '\0';
len2--;
}
// 删除s1中所有出现在s2中的字符
for (i = 0; i < len1; i++) {
for (j = 0; j < len2; j++) {
if (s1[i] == s2[j]) {
// 将该字符向前移动覆盖
len1--;
for (int k = i; k < len1; k++) {
s1[k] = s1[k + 1];
}
i--; // 处理完当前字符后,需要将i向前移动一个位置再继续比较
break; // 跳出内层循环
}
}
}
// 输出结果
printf("输出结果:\n%s\n", s1);
return 0;
}
```
注:该程序采用了fgets函数读取输入字符串,可以避免gets函数可能导致的缓冲区溢出问题。同时,也在读取字符串后判断了是否存在换行符,防止在后续处理中产生问题。
阅读全文