【问题描述】 编写一个程序,当在一个字符串中出现子串时就删除它。 【输入形式】 用户在第一行输入一个字符串,用户在第二行输入一个子串。 【输出形式】 程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字符串本身。 【样例输入】 I am a boy! a 【样例输出】 I m boy! 【样例说明】 用户首先输入字符串I am a boy!,然后输出子串a,程序会寻找字符串中的子串删除它,最后 将删除后的结果输出:I#m##boy! #表示空格。用c语言写
时间: 2024-04-05 08:33:37 浏览: 226
以下是使用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的IDE中运行:
```python
# 获取用户输入的字符串和子串
string = input()
substring = input()
# 判断子串是否在字符串中出现
if substring in string:
# 删除子串
new_string = string.replace(substring, "")
print(new_string)
else:
# 如果字符串不包含子串,则输出原字符串本身
print(string)
```
这个程序会先获取用户输入的字符串和子串,然后判断子串是否在字符串中出现。如果子串在字符串中出现,则用`replace()`函数将所有子串替换为空字符串,从而删除子串,最后输出删除子串后的字符串。如果字符串不包含子串,则直接输出原字符串本身。
希望我的回答能够帮到您。
【问题描述】 编写一个程序,当在一个字符串中出现子串时就删除它。 【输入形式】 用户在第一行输入一个字符串,用户在第二行输入一个子串。 【输出形式】 程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字符串本身。 【样例输入】 I am a boy! a 【样例输出】 I m boy! 【样例说明】 用户首先输入字符串I am a boy!,然后输出子串a,程序会寻找字符串中的子串删除它,最后 将删除后的结果输出:I m boy! #表示空格。c语
以下是 C 语言代码实现,可以供参考:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[1000];
char sub[100];
fgets(s, 1000, stdin); // 输入字符串
fgets(sub, 100, stdin); // 输入子串
sub[strcspn(sub, "\r\n")] = '\0'; // 去掉输入字符串中的换行符
s[strcspn(s, "\r\n")] = '\0'; // 去掉输入子串中的换行符
int len_s = strlen(s);
int len_sub = strlen(sub);
while (strstr(s, sub) != NULL) { // 循环删除子串
char *p = strstr(s, sub);
for (int i = p - s; i < len_s - len_sub; i++) {
s[i] = s[i + len_sub];
}
s[len_s - len_sub] = '\0';
len_s = strlen(s);
}
for (int i = 0; i < len_s; i++) { // 将空格替换为 #
if (s[i] == ' ') {
s[i] = '#';
}
}
printf("%s", s);
return 0;
}
```
输入样例:
```
I am a boy!
a
```
输出样例:
```
I m boy!
```
阅读全文