嗨,我是社区的新手。
我对std :: string有疑问。 是否有可能写入字符串的特定索引,保持字符串的其余部分为空?
e.g。
std::string tempString = "";
tempString ->insert(10, "Some String I want to Insert");
//index position and string to insert
并且最终答案是tempString =“__________Some我要插入的字符串”
其中字符0到9未初始化。
一旦分配了内存,就可以使用char *。 但这可能与std :: strings一起使用吗?
提前感谢您,感谢您邀请我加入这个社区:)
答案 0 :(得分:1)
给出一些插入位置
size_t insertion_position = 10;
要插入一些std::string
或const char*
const char *text = "Some String I want to Insert";
这样可以有效地完成。
std::string tempString( insertion_position, ' ' );
tempString += text;
或作为一个班轮:
std::string tempString = std::string( insertion_position, ' ' ) + text;
答案 1 :(得分:0)
是否可以写入字符串的特定索引,保留字符串[未初始化]的其余部分?
没有
std::basic_string
并非旨在表示未初始化值的集合。
答案 2 :(得分:0)
检查一下,你可以使用stringstream而不是cout。然后你可以将输出变成一个字符串而不是看到它被转储到控制台上
// using the fill character
#include <iostream> // std::cout
int main () {
char prev;
std::cout.width (10);
std::cout << 40 << '\n';
prev = std::cout.fill ('x');
std::cout.width (10);
std::cout << 40 << '\n';
std::cout.fill(prev);
return 0;
}
输出: 40 xxxxxxxx40