删除字符串中所有给定的子串 问题描述: 在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。 要求实现函数: int delete_sub_str(const char
时间: 2024-12-15 18:30:57 浏览: 12
字符串中的回文子串(Delphi).txt
在C++中,你可以创建一个名为`delete_sub_str`的函数,它接受两个参数:一个是原始字符串`str`,另一个是要删除的子串`substr`。下面是一个简单的实现,它遍历整个字符串,每找到一次子串就将其删除,并返回实际删除了的子串的数量:
```cpp
#include <string>
#include <vector>
int delete_sub_str(const std::string& str, const std::string& substr) {
size_t pos = str.find(substr);
int count = 0;
while (pos != std::string::npos) {
str.erase(pos, substr.length());
count++;
pos = str.find(substr); // 更新查找位置
}
return count; // 返回删除的子串次数
}
```
这个函数首先使用`find`函数查找子串的位置,如果找到了就删除那一段,并更新查找的位置到下一个可能出现的地方。如果没找到子串,`find`会返回`std::string::npos`,循环就会停止。
阅读全文