【问题标题】:Replace some character in string替换字符串中的某个字符
【发布时间】:2016-07-24 14:23:00
【问题描述】:

我有一个由 8 个字符组成的字符串 '00001111' 我想替换一些特定的索引值。例如,如果我检查 stringName[2]=='0' 并替换它 使用stringName.replace(2,2,"1") 然后它会替换但最后缺少一个字符

if (xyz[3]=='0')
{
    xyz.replace(3,3,"1");
}
else
{
    xyz.replace(3, 3, "0");
}

【问题讨论】:

  • 你把它弄得太复杂了。只需简单stringName[2] = '1';
  • 不要放代码或输出的图像。在此处粘贴文本
  • @LưuVĩnhPhúc:对于代码,是的,我同意。但是输出的图像有什么问题?
  • @IgorTandetnik:答案在下面,芽↓↓↓↓
  • @BenjaminLindley 在答案中引用部分输出通常很有用。不能简单地复制粘贴图像的某些部分,因此图像会给写答案的人带来不必要的工作。

标签: c++ string


【解决方案1】:

问题是replace方法的误用,第一个参数是replace的起始索引,第二个是length,第三个是应该插入的字符串。因此说 replace(2,2,"0") 意味着用“0”(一个字符的字符串)替换从索引 2 开始的两个字符,这就是字符消失的原因。

解决方案正如人们所说,string[index_you_want_to_replace] = 'some_char'。

【讨论】:

    猜你喜欢
    • 2012-02-18
    • 2016-08-04
    • 2011-02-21
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    相关资源
    最近更新 更多