编写程序task31.c,输入两个字符串s1、s2,将s1中所有s2子串删去后输出。如若输入s1=“This is my mother university”,s2=“er”,则输出为”This is my moth univsity”
时间: 2024-09-28 16:08:10 浏览: 52
编写一个名为 `task31.c` 的程序,你可以使用 C 语言来实现这个功能。这里是一个简单的示例代码片段:
```c
#include <stdio.h>
#include <string.h>
void remove_substring(char *str, char *substr) {
int i = 0, j = 0;
while (i < strlen(str)) {
if (str[i] == substr[j]) {
j++;
if (j == strlen(substr)) {
// 找到一个完整的子串,跳过并继续
i += j; // 跳过已经匹配的子串长度
j = 0;
}
} else {
str[i] = str[i + 1];
i++;
}
}
str[i] = '\0'; // 确保字符串结束符正确
}
int main() {
char s1[100], s2[100];
printf("请输入第一个字符串 s1: ");
fgets(s1, sizeof(s1), stdin);
s1[strcspn(s1, "\n")] = '\0'; // 移除fgets读取的换行符
printf("请输入第二个字符串 s2: ");
fgets(s2, sizeof(s2), stdin);
s2[strcspn(s2, "\n")] = '\0'; // 移除fgets读取的换行符
remove_substring(s1, s2);
printf("删除了 %s 后的结果是: %s\n", s2, s1);
return 0;
}
```
在这个程序中,我们首先从用户那里获取两个字符串,然后在 `remove_substring` 函数中遍历 `s1`,查找是否包含 `s2` 子串。如果找到,就跳过该子串;如果没有找到,则直接复制字符到结果字符串中。
阅读全文