char *buffer1 = "abc";
const char *buffer2 = (const char*) buffer;
std :: string str (buffer2);
这有效,但我想声明 std :: string 对象,即 str ,一次并多次使用它来存储不同的 const char *。
出路是什么?
答案 0 :(得分:14)
你可以重新分配:
const char *buf1 = "abc";
const char *buf2 = "def";
std::string str(buf1);
str = buf2; // Calls str.operator=(const char *)
答案 1 :(得分:1)
str
实际上正在复制buffer2
中的字符,因此它没有以任何方式连接。
如果您希望它具有其他值,则只需指定一个新值
str = "Hello";
答案 2 :(得分:1)
好吧,正如我上面评论的那样,在发布问题之后不久就找到了答案:doh:
const char* g;
g = (const char*)buffer;
std :: string str;
str.append (g);
所以,我可以多次调用append()函数(在使用clear()之后)和“const char *”一样调用同一个对象。
虽然“push_back”功能无法取代“追加”。
答案 3 :(得分:0)
创建一个类说MyString组成String缓冲区。 有一个常数的那个班级。 然后你可以重新分配组合字符串缓冲区的值,同时使用相同的常量。