c++ string 查找指定字符串,之后把指定字符串的内容全部替换成空字符
时间: 2023-12-23 19:05:56 浏览: 244
要实现将指定字符串的内容替换为空字符,可以使用C++的`std::string`类和其成员函数`find()`和`replace()`。首先使用`find()`函数找到指定字符串的位置,然后使用`replace()`函数将该位置开始的指定字符串替换为空字符串。
以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world! Hello, C++! Hello, string!";
std::string searchStr = "Hello, C++!";
std::string replaceStr = "";
// 查找指定字符串的位置
size_t pos = str.find(searchStr);
if (pos != std::string::npos) {
// 替换指定字符串为空字符串
str.replace(pos, searchStr.length(), replaceStr);
}
std::cout << str << std::endl;
return 0;
}
```
在上面的示例中,我们将字符串`str`中的"Hello, C++!"替换为了空字符串。输出结果为:"Hello, world! Hello, string!"。您可以根据自己的需求修改代码中的字符串和查找替换的内容。
相关问题
c++ string 查找指定字符串,之后把指定字符串之前的内容全部替换成空字符
您可以使用`find`函数来查找指定字符串在`std::string`中的位置,然后使用`substr`函数截取出指定字符串之前的内容,并将其替换为空字符。
以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world! This is a test string.";
std::string target = "world!";
// 查找指定字符串的位置
size_t pos = str.find(target);
if (pos != std::string::npos) {
// 截取指定字符串之前的内容,并替换为空字符
str.replace(0, pos + target.length(), "");
std::cout << "替换后的字符串: " << str << std::endl;
} else {
std::cout << "未找到指定字符串." << std::endl;
}
return 0;
}
```
运行上述代码,输出结果为:
```
替换后的字符串: This is a test string.
```
在上述示例中,我们使用`find`函数找到了目标字符串"world!"在原字符串中的位置,然后使用`replace`函数将目标字符串之前的内容替换成空字符。
C++ string 替换指定字符串
你可以使用C++中的string类提供的replace函数来替换指定字符串。replace函数的参数是替换起始位置、替换长度和替换内容。以下是一个简单的示例代码:
```c++
#include <string>
#include <iostream>
using namespace std;
int main() {
string s = "Hello world!";
string old_str = "world";
string new_str = "C++";
size_t pos = s.find(old_str);
if(pos != string::npos) {
s.replace(pos, old_str.length(), new_str);
}
cout << s << endl; // 输出:Hello C++!
return 0;
}
```
在这个示例代码中,我们首先使用find函数找到要替换的字符串的起始位置。如果找到了要替换的字符串,就使用replace函数进行替换。最后输出替换后的字符串。需要注意的是,如果要替换的字符串在原字符串中出现多次,上述代码只会替换第一次出现的字符串。
阅读全文