如何用常量字符(如“ X”)替换字符串的子字符串

时间:2018-12-06 10:16:01

标签: c++

我有一个如下所示的字符串

std::string s = "123468998";

我想将位置0到4的所有字符替换为字符'X' 所以我的字符串看起来像

"XXXXX68998"

有任何内置功能可用于此吗,或者我需要手动完成

我不能假设1234是常数,它可能会发生变化,因此根据我要替换的位置

1 个答案:

答案 0 :(得分:1)

要替换字符串中的单个字符,只需使用[]访问字符串中的字符:

#include <iostream>
#include <string>

int main()
{
    std::string s = "123468998";
    for (int i = 0; i < 5; i++) {
         s[i] = 'X';
    }
    std::cout << s << std::endl;
    return 0;
}

如果要使用内置解决方案,可以执行以下操作:

s.replace(0, 5, 5, 'X');

查看其文档here

std::fill,如here所述:

std::fill(s.begin(), s.begin() + 5, 'X');