编写一个程序,当在一个字符串中出现子串时就删除它
时间: 2023-04-14 13:04:02 浏览: 275
好的,以下是程序的代码:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], substr[20];
int i, j, k, n, m;
printf("请输入一个字符串:");
gets(str);
printf("请输入要删除的子串:");
gets(substr);
n = strlen(str);
m = strlen(substr);
for (i = ; i <= n - m; i++)
{
k = i;
for (j = ; j < m; j++)
{
if (str[k] == substr[j])
k++;
else
break;
}
if (j == m)
{
for (k = i; k < n - m; k++)
str[k] = str[k + m];
str[k] = '\';
n = strlen(str);
i--;
}
}
printf("删除后的字符串为:%s\n", str);
return ;
}
```
程序的思路是:先输入一个字符串和要删除的子串,然后遍历整个字符串,每次找到子串就删除它。具体实现是,用两个循环分别遍历字符串和子串,如果当前字符相同就继续比较下一个字符,直到子串全部匹配成功,此时就可以删除子串了。删除子串的方法是,将子串后面的字符全部往前移动,覆盖掉子串,最后在字符串末尾加上一个空字符,表示字符串的结束。最后输出删除后的字符串即可。
阅读全文