string s1中把某串字符s2全删完 c++
时间: 2024-09-20 17:17:50 浏览: 45
在C++中,如果你想从字符串`s1`中删除完全匹配的另一个字符串`s2`,你可以使用`std::remove`函数结合`std::string::erase`来实现。这里是一个简单的示例:
```cpp
#include <algorithm>
#include <string>
std::string removeSubstring(const std::string& s1, const std::string& s2) {
size_t pos = 0;
while ((pos = s1.find(s2, pos)) != std::string::npos) { // 使用find查找s2的位置
s1.erase(pos, s2.size()); // 从找到的位置开始,删除s2的长度
pos += s2.size(); // 更新查找起始位置,跳过已删除的部分
}
return s1;
}
// 使用方法
int main() {
std::string s1 = "Hello, World! This is a sample string.";
std::string s2 = "sample";
s1 = removeSubstring(s1, s2);
std::cout << "After removing \"" << s2 << "\": " << s1 << std::endl;
return 0;
}
```
在这个例子中,我们不断地查找`s1`中`s2`的起始位置,并删除它,直到找不到更多匹配为止。
阅读全文