c语言编程编写一个删除子串的函数delstr,它有两个字符串参数s1和s2,可以将s1串中的所有s2串删除,删除结果存放在s1中。输入一个字符母串(<=100字符),再输入一个字符子串(<=10字符),然后调用delstr删除子串并显示删除子串后的母串。 例如,输入:I learn computer 再输入:learn 则显示:I computer
时间: 2024-01-22 18:19:32 浏览: 150
C语言程序设计-从字符串s中删除指定的字符c.c
5星 · 资源好评率100%
以下是一个实现删除子串的 C 语言函数 delstr 的代码:
```c
#include <stdio.h>
#include <string.h>
void delstr(char *s1, char *s2) {
int len1 = strlen(s1);
int len2 = strlen(s2);
int i, j, k;
for (i = 0; i <= len1 - len2; i++) {
for (j = i; j < i + len2; j++) {
if (s1[j] != s2[j - i]) {
break;
}
}
if (j == i + len2) {
for (k = i; k < len1 - len2; k++) {
s1[k] = s1[k + len2];
}
s1[k] = '\0';
i--;
}
}
}
int main() {
char s1[101], s2[11];
printf("请输入母串:");
scanf("%[^\n]", s1);
getchar();
printf("请输入子串:");
scanf("%s", s2);
delstr(s1, s2);
printf("删除子串后的母串为:%s\n", s1);
return 0;
}
```
函数 delstr 遍历 s1 中的每个子串,如果找到了与 s2 相同的子串,就将 s1 中该子串后面的所有字符向前移动 len2 个位置,并在末尾添加 '\0'。最后,s1 就变成了删除 s2 子串后的字符串。
在主函数中,首先读入 s1 和 s2,然后调用 delstr 函数,最后输出删除子串后的 s1。
注意,在读入 s1 时,需要使用 scanf 的 %[^\n] 格式化字符串,这样可以读入包括空格在内的整个一行。而在读入 s2 时,则可以直接使用 scanf("%s", s2)。
阅读全文