21xrx.com
2025-06-22 16:15:25 Sunday
登录
文章检索 我的文章 写文章
C++字符串替换方法
2023-06-24 03:53:27 深夜i     14     0
C++ 字符串 替换 方法

C++中的字符串替换是比较常见的操作。在实际的开发中,我们经常需要对字符串中的某些字符或者子串进行替换操作。下面将介绍几种常见的C++字符串替换方法。

1. replace

replace是C++字符串库中的一个函数,用于替换字符串中的部分字符或者子串。其函数原型如下:

string& replace(size_t pos, size_t len, const string& str);

其中,pos表示要替换的起始位置,len表示要替换的长度,str表示用来替换的字符串。

例如,下面的代码将字符串中从第3个字符开始的2个字符替换成"b":

string str = "abcdef";
str.replace(2, 2, "b");

此时,字符串str的值为"abbdef"。

2. find和replace

find和replace是结合使用的方法,可以用于在字符串中查找某个子串,并替换成另一个字符串。其基本思路如下:

size_t pos = str.find(sub_str); // 查找子串的位置
if (pos != string::npos) // 找到子串
{
  str.replace(pos, sub_str.size(), new_str); // 替换子串
}

其中,sub_str表示要查找和替换的子串,new_str表示要替换成的字符串。

例如,下面的代码将字符串中的"old"替换成"new":

string str = "This is an old string.";
string sub_str = "old";
string new_str = "new";
size_t pos = str.find(sub_str);
if (pos != string::npos)
{
  str.replace(pos, sub_str.size(), new_str);
}

此时,字符串str的值为"This is an new string."。

3. stringstream

stringstream可以将一个字符串解析成多个子串,并存储在一个vector中。我们可以在vector中查找要替换的子串,并对其进行替换操作。

例如,下面的代码将字符串中的"old"替换成"new":

string str = "This is an old string.";
vector<string> vec;
stringstream ss(str);
string tmp;
while (getline(ss, tmp, ' '))
{
  vec.push_back(tmp);
}
for (int i = 0; i < vec.size(); ++i)
{
  if (vec[i] == "old")
  {
    vec[i] = "new";
  }
}
ostringstream oss;
for (int i = 0; i < vec.size(); ++i)
{
  oss << vec[i] << " ";
}
string new_str = oss.str();

此时,字符串new_str的值为"This is an new string. "。

总之,C++字符串替换操作有多种方法,我们可以根据具体的需求选择合适的方法进行操作。

  
  

评论区