C语言编写一个删除子串的函数delstr,它有两个字符串参数s1和s2,可以将s1串中的所有s2串删除,删除结果存放在s1中。输入一个字符母串(<=100字符),再输入一个字符子串(<=10字符),然后调用delstr删除子串并显示删除子串后的母串。(此题为计算机自动评分题,请严格按照以下规定编程,否则无法得分:不要有任何输入、输出提示文字直接显示结果,结果后面不要跟回车。) 例如,输入:I learn computer 再输入:learn 则显示:I computer
时间: 2023-07-15 18:11:23 浏览: 310
C语言字符串的相关操作_字符操作函数_数据结构中字符串的相关操作_
5星 · 资源好评率100%
以下是C语言实现delstr函数的代码:
```c
#include <stdio.h>
#include <string.h>
void delstr(char *s1, char *s2) {
int i, j, k;
int len1 = strlen(s1);
int len2 = strlen(s2);
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--; // 需要继续检查当前位置
len1 = strlen(s1); // 更新s1的长度
}
}
}
int main() {
char s1[101], s2[11];
scanf("%s%s", s1, s2);
delstr(s1, s2);
printf("%s", s1);
return 0;
}
```
在主函数中,我们先读入输入的字符串s1和s2,然后调用delstr函数删除s1中的s2,并输出删除后的s1。delstr函数的实现是双重循环,外层循环是对s1中每个可能的匹配位置进行检查,内层循环是对s2中的每个字符与s1中的字符进行比较。如果匹配成功,则将s1中的s2删除。需要注意的是,删除后的s1的长度会发生变化,因此需要在删除完毕后更新它的长度。
阅读全文