首页 > 解决方案 > 如何用像'X'这样的常量字符替换字符串的子字符串

问题描述

我有一个如下的字符串

std::string s = "123468998";

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

"XXXXX68998"

是否有任何可用的构建功能,或者我需要手动完成

我不能假设 1234 是恒定的,它可能会根据我要替换的位置而改变

标签: c++stringsubstringcharacter-replacement

解决方案


要替换字符串中的单个字符,您可以简单地使用以下命令访问字符串中的字符[]

#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');

在此处查看其文档。

或者std::fill,如此处所述

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

推荐阅读