如何搜索字符串并将每个双引号替换为2个双引号?(C++)

21 浏览
0 Comments

如何搜索字符串并将每个双引号替换为2个双引号?(C++)

这个问题已经有答案:

如何替换字符串中所有出现的字符?

像这样的东西能行吗?我看了一些指南,它们似乎不能用于将单个字符替换为两个或更多个字符。

  for (int i = 0; i < s.length(); i++){
       if(s[i] == '\"')
           s[i] = '\"\"';
  }
  cout << s;

admin 更改状态以发布 2023年5月20日
0
0 Comments

您的代码不会按照您的预期运行。

您要求 std::string 将一个包含两个字符的常量 '\"\"' 赋值给一个只能容纳单个字符的插槽。

请在您所喜爱的 C++ 参考文献中查找 basic_string 章节 中的方法,将字符串或多个字符插入字符串中。

编辑 1 - 示例

std::string::size_type position = 0;
position = s.find('"');
while (position != std::string::npos)
{
  s.insert(position, "\"");
  position += 2;
  position = s.find('"');
}

0