2011-10-19 31 views
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 

我不希望在这个代码唯一改变的是应该保持string'prefix'类型。

回答

3

试试这个:

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

试试这个:

unsigned strLen(15); 
std::string prefix("1234"); 
prefix += std::string(strLen - prefix.length(), '9'); 
2
int StrLength = 15; 
    string PreFix = "1234"; 
    string RestOfStr(StrLength - PreFix.length(), '9'); 
    cout << PreFix << RestOfStr << endl; 

String类有一个重载的构造函数,采取大小和炭。 构造函数将创建一个充满了时代的字符重复x量字符串对象

希望这有助于

相关问题