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

发布于 2024-12-10 10:57:20 字数 586 浏览 0 评论 0原文

我需要构造一个以特定前缀开头的特定长度的字符串。有没有更快的方法(在性能方面)来实现以下代码段的目标?在这里使用 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

I need to construct a string of a specific length starting with a specific prefix. Is there any faster way (in terms of performance) to achieve the objective of the following piece of code? Would it be of any help to use char* here?

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());

Sample prefix and output:

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

The only thing I do not want changed in this code is the type of 'prefix' which should remain string.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

追星践月 2024-12-17 10:57:20

试试这个:

std::string content(15, '9'); // start off with all 9s
content.replace(0, 4, "1234"); // replace the first four characters etc.

try this:

std::string content(15, '9'); // start off with all 9s
content.replace(0, 4, "1234"); // replace the first four characters etc.
静若繁花 2024-12-17 10:57:20
    int StrLength = 15;
    string PreFix = "1234";
    string RestOfStr(StrLength - PreFix.length(), '9');
    cout << PreFix << RestOfStr << endl;

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

希望这有帮助

    int StrLength = 15;
    string PreFix = "1234";
    string RestOfStr(StrLength - PreFix.length(), '9');
    cout << PreFix << RestOfStr << endl;

the string class has an overloaded Constructor, taking a size and a char.
The constructor will create a string object filled with the char repeated x amount of times

Hope This Helps

﹏雨一样淡蓝的深情 2024-12-17 10:57:20

试试这个:

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

Try this:

unsigned strLen(15);
std::string prefix("1234");
prefix += std::string(strLen - prefix.length(), '9');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文