char *buffer1 = "abc";
const char *buffer2 = (const char*) buffer;
std :: string str (buffer2);
这个方法可行,但我希望只声明一次 std::string 对象,即 str,并多次使用它来存储不同的 const char*。
有什么解决方法吗?
你可以直接重新赋值:
const char *buf1 = "abc";
const char *buf2 = "def";
std::string str(buf1);
str = buf2; // Calls str.operator=(const char *)
const char* g;
g = (const char*)buffer;
std :: string str;
str.append (g);
因此,我可以在同一对象上使用“const char *”多次调用append()函数(在使用clear()后)。
尽管“push_back”函数无法替换“append”。
str
实际上是从 buffer2
复制字符,因此它没有任何连接。
如果你想要它有另一个值,只需赋一个新的值即可。
str = "Hello";
std::string str(buffer2);
存储那个 const char* 的一个简单方法是使用 stl 类的append
函数!比如std::string str; str.append(buffer2);
- Aquarius_Girl