【问题描述】 编写一个程序,当在一个字符串中出现子串时就删除它。 【输入形式】 用户在第一行输入一个字符串,用户在第二行输入一个子串。 【输出形式】 程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字符串本身。 【样例输入】 I am a boy! a 【样例输出】 I m boy! 【样例说明】 用户首先输入字符串I am a boy!,然后输出子串a,程序会寻找字符串中的子串删除它,最后 将删除后的结果输出:I#m##boy! #表示空格。用c语言写
时间: 2024-04-05 14:33:37 浏览: 242
以下是使用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;
}
```
请注意,此程序会删除字符串中的所有子串,而不仅仅是第一个匹配的子串。
相关问题
用C语言解决以下问题 【问题描述】 编写一个程序,当在一个字符串中出现子串时就删除它。 【输入形式】 用户在第一行输入一个字符串,用户在第二行输入一个子串。 【输出形式】 程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字符串本身。
在C语言中,可以使用`strstr()`函数来查找子串是否存在于主字符串中,并通过循环和`strcpy()`、`strcat()`函数逐步替换或删除子串。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
void removeSubstring(char* str, char* substr) {
size_t index = 0;
while ((index = strstr(str, substr)) != NULL) { // 查找子串位置
// 如果找到子串,从当前位置开始复制到新的位置,然后移动剩余部分到新位置后面
memmove(index + strlen(substr), index, strlen(str) - index + 1);
}
}
int main() {
char input[100], subString[100];
printf("请输入字符串: ");
fgets(input, sizeof(input), stdin); // 防止换行符影响结果
input[strlen(input) - 1] = '\0'; // 移除fgets最后的换行符
printf("请输入子串: ");
fgets(subString, sizeof(subString), stdin);
subString[strlen(subString) - 1] = '\0'; // 同样处理换行符
removeSubstring(input, subString);
printf("删除子串后的字符串: %s\n", input);
return 0;
}
```
在这个程序中,用户会依次输入主字符串和子字符串,程序会检查子串是否存在于主字符串中并移除所有匹配的部分。如果不存在子串,原始字符串就会直接输出。
【问题描述】 编写一个程序,当在一个字符串中出现指定子串时就删除它。 【输入形式】 用户在第一行输入一个字符串,用户在第二行输入一个子串。 【输出形式】 程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字符串本身
好的,这是一个字符串处理的问题,我可以为您提供一个Python的解决方案,您可以将以下代码复制到Python的IDE中运行:
```python
# 获取用户输入的字符串和子串
string = input()
substring = input()
# 判断子串是否在字符串中出现
if substring in string:
# 删除子串
new_string = string.replace(substring, "")
print(new_string)
else:
# 如果字符串不包含子串,则输出原字符串本身
print(string)
```
这个程序会先获取用户输入的字符串和子串,然后判断子串是否在字符串中出现。如果子串在字符串中出现,则用`replace()`函数将所有子串替换为空字符串,从而删除子串,最后输出删除子串后的字符串。如果字符串不包含子串,则直接输出原字符串本身。
希望我的回答能够帮到您。
阅读全文