编写一个程序,当在一个字符串中出现指定子串时就删除它。 【输入形式】 用户在第一行输入一个字符串,用户在第二行输入一个子串。 【输出形式】 程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字符串本身。用c来实现
时间: 2024-02-03 20:11:52 浏览: 78
以下是C语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char str[MAX_LEN];
char sub_str[MAX_LEN];
char new_str[MAX_LEN];
int i, j, k, flag;
int len_str, len_sub_str, len_new_str;
// 输入字符串和子串
fgets(str, MAX_LEN, stdin);
fgets(sub_str, MAX_LEN, stdin);
// 去掉字符串中的换行符
len_str = strlen(str);
if (str[len_str - 1] == '\n') {
str[len_str - 1] = '\0';
len_str--;
}
len_sub_str = strlen(sub_str);
if (sub_str[len_sub_str - 1] == '\n') {
sub_str[len_sub_str - 1] = '\0';
len_sub_str--;
}
// 删除子串
len_new_str = 0;
for (i = 0; i < len_str; i++) {
flag = 0;
for (j = i, k = 0; k < len_sub_str; j++, k++) {
if (str[j] != sub_str[k]) {
flag = 1;
break;
}
}
if (!flag) {
i += len_sub_str - 1;
continue;
}
new_str[len_new_str++] = str[i];
}
new_str[len_new_str] = '\0';
// 输出删除子串后的字符串
printf("%s\n", new_str);
return 0;
}
```
输入示例:
```
hello world!
llo
```
输出示例:
```
he world!
```
阅读全文