21xrx.com
2024-11-08 22:17:39 Friday
登录
文章检索 我的文章 写文章
C++字符串替换方法
2023-06-24 03:53:27 深夜i     --     --
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++字符串替换操作有多种方法,我们可以根据具体的需求选择合适的方法进行操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复