用C++编写一段程序,当在一个字符串中出现子串时就删除它。 【输入形式】 用户在第一行输入一个字符串,用户在第二行输入一个子串。 【输出形式】 程序在下一行输出删除其中所有子串后的字符串。如果字符串不包含子串则输出原字符串本身。
时间: 2024-12-25 08:25:25 浏览: 1
用MASM32来DIY一个判断字符串1是否为字符串2的子串的函数演示代码(源码+exe)(应用repe cmpsb指令,区分大小写)
3星 · 编辑精心推荐
在C++中,你可以使用`std::string::find`函数来查找子串的位置,并使用`substr`和`erase`操作来删除子串。下面是一个简单的示例程序:
```cpp
#include <iostream>
#include <string>
void deleteSubstring(std::string& str, const std::string& substr) {
size_t pos = 0;
while ((pos = str.find(substr)) != std::string::npos) {
// 找到子串位置,从该位置开始截取到子串末尾
str.erase(pos, substr.length());
// 继续搜索下一个子串的位置
pos += substr.length();
}
}
int main() {
std::string input_str, sub_str;
std::getline(std::cin, input_str);
std::getline(std::cin, sub_str);
deleteSubstring(input_str, sub_str);
if (input_str.empty()) {
std::cout << "原始字符串不含子串" << std::endl;
} else {
std::cout << "删除子串后的字符串: " << input_str << std::endl;
}
return 0;
}
```
**相关问题--:**
1. 这段代码如何处理子串出现多次的情况?
2. 如果子串不存在于输入字符串中,这段代码会怎样处理?
3. C++标准库中的哪些其他函数可以用于字符串操作?
阅读全文