构造以特定前缀开头的特定长度的字符串

Constructing a string of a specific length starting with a specific prefix

本文关键字:字符串 前缀 开头      更新时间:2023-10-16

我需要构造一个以特定前缀开头的特定长度的字符串。有没有更快的方法(性能方面(来实现以下代码的目标?在这里使用char*有什么帮助吗?

int strLen = 15;
string prefix = "1234"; // could be a number of any length less than strLen
int prefixLen = prefix.length();
string str = prefix;
for(int i=0;i<strLen-prefixLen;i++)
{
    str.append("9"); // use character '9' as filler
}
printf("str: %s n", str.c_str());

样本前缀和输出:

prefix: 123, str:  123999999999999
prefix: 1234, str: 123499999999999

在这段代码中,我唯一不想更改的是'prefix'的类型,它应该保持为string

试试这个:

std::string content(15, '9'); // start off with all 9s
content.replace(0, 4, "1234"); // replace the first four characters etc.
    int StrLength = 15;
    string PreFix = "1234";
    string RestOfStr(StrLength - PreFix.length(), '9');
    cout << PreFix << RestOfStr << endl;

字符串类有一个重载的构造函数,它采用一个大小和一个字符。构造函数将创建一个字符串对象,其中填充重复x次的字符

希望这有助于

试试这个:

unsigned strLen(15);
std::string prefix("1234");
prefix += std::string(strLen - prefix.length(), '9');