【问题描述】 编写一个程序,当在一个字符串中出现子串时就删除它。 【输入形式】 用户在第一行输入一个字符串,用户在第二行输入一个子串。 【输出形式】 程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字符串本身。 【样例输入】 I am a boy! a 【样例输出】 I m boy! 【样例说明】 用户首先输入字符串I am a boy!,然后输出子串a,程序会寻找字符串中的子串删除它,最后 将删除后的结果输出:I#m##boy! #表示空格。用c语言写
时间: 2024-04-05 18:33:37 浏览: 60
以下是使用C语言编写的程序,用于删除字符串中的子串:
```c
#include <stdio.h>
#include <string.h>
void deleteSubstring(char* str, const char* sub)
{
int len = strlen(sub);
char* p = str;
while ((p = strstr(p, sub)) != NULL)
{
memmove(p, p + len, strlen(p + len) + 1);
}
}
int main()
{
char str[100];
char sub[100];
// 输入字符串和子串
fgets(str, sizeof(str), stdin);
fgets(sub, sizeof(sub), stdin);
// 删除子串
deleteSubstring(str, sub);
// 输出结果
printf("%s", str);
return 0;
}
```
请注意,此程序会删除字符串中的所有子串,而不仅仅是第一个匹配的子串。
相关问题
编写一个程序,当在一个字符串中出现子串时就删除它。
以下是一个使用Python编写的程序,可以实现在一个字符串中删除指定子串的功能:
```python
def delete_substring(string, substring):
while substring in string:
index = string.find(substring)
string = string[:index] + string[index+len(substring):]
return string
```
程序中的 `delete_substring` 函数接收两个参数:`string` 表示原始字符串,`substring` 表示要删除的子串。程序使用一个循环,不断地查找并删除子串,直到原始字符串中不再出现该子串。具体来说,程序使用字符串的 `find` 方法查找子串在原始字符串中的位置,并使用字符串切片操作将子串从原始字符串中删除。
例如,如果我们要删除字符串 `"hello world"` 中的子串 `"o"`,可以这样调用函数:
```python
result = delete_substring("hello world", "o")
print(result) # 输出 "hell wrld"
```
注意,这个程序只能删除字符串中的一个子串。如果要删除多个子串,需要多次调用该函数。
编写一个程序,当在一个字符串中出现子串时就删除它
好的,以下是程序的代码:
```
#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 ;
}
```
程序的思路是:先输入一个字符串和要删除的子串,然后遍历整个字符串,每次找到子串就删除它。具体实现是,用两个循环分别遍历字符串和子串,如果当前字符相同就继续比较下一个字符,直到子串全部匹配成功,此时就可以删除子串了。删除子串的方法是,将子串后面的字符全部往前移动,覆盖掉子串,最后在字符串末尾加上一个空字符,表示字符串的结束。最后输出删除后的字符串即可。