C++string 怎么给char* 赋值
时间: 2024-10-19 09:17:33 浏览: 21
C++中string转换为char*类型返回后乱码问题解决
5星 · 资源好评率100%
在C++中,当你想要将一个`char*`类型的字符串赋值给`std::string`变量时,可以直接使用`std::string`的构造函数。这个构造函数接受一个C风格的字符数组或者`const char*`指针作为参数,并将其转换为`std::string`对象的内容。
下面是一个例子:
```cpp
std::string strFromCharPtr = "Hello, world!"; // 使用直接字面量
std::string strFromCArray = std::string("Another string"); // 使用C风格字符串
// 或者从char*开始复制
const char* cString = "This is a char pointer string";
strFromCharPtr = cString;
// 确保不要忘记结尾的空字符 '\0',除非它是最后一个字符
// const char* cStringWithoutTerminator = "Some string without null terminator";
// strFromCharPtr.assign(cStringWithoutTerminator, strlen(cStringWithoutTerminator)); // 注意这可能导致未定义的行为
```
在这个例子中,`strFromCharPtr`现在包含了与`cString`或`"Another string"`相同的文本。如果`cString`没有结尾的空字符('\0'),则需要使用`strlen`函数加上结束符,然后通过`assign`方法指定范围来避免潜在问题。
阅读全文