c++ std::string 转 char *
时间: 2023-11-16 09:07:18 浏览: 76
可以使用字符串对象中的c_str()函数实现。c_str()函数返回一个指向字符串中第一个字符的指针,这个指针可以作为一个普通的C风格字符串使用。例如:
std::string str = "hello world";
const char* cstr = str.c_str(); // 将字符串转换成C风格字符串
需要注意的是,在使用c_str()函数时,需要保证字符串对象在指针失效前一直存在,以避免出现悬垂指针问题。
相关问题
C++ std::string转const char
您可以使用`c_str()`函数将C++的`std::string`对象转换为`const char*`类型。这个函数返回一个以空字符结尾的C风格字符串,您可以将其作为`const char*`类型的常量指针使用。下面是一个示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
const char* cstr = str.c_str();
std::cout << cstr << std::endl;
return 0;
}
```
在上面的示例中,我们先创建了一个`std::string`对象`str`,然后使用`c_str()`函数将其转换为`const char*`类型的指针`cstr`。最后,我们使用`std::cout`输出`cstr`指向的C风格字符串。
请注意,`c_str()`返回的指针在`std::string`对象的生命周期内是有效的,但一旦`std::string`对象被销毁,返回的指针将不再有效。因此,在使用`c_str()`返回的指针时要小心,确保它所指向的数据仍然有效。
c++将std::string转换成char*
可以通过`std::string`的`c_str()`函数来获取一个指向`char`类型的指针,示例如下:
```c++
std::string str = "Hello, World!";
const char* charPtr = str.c_str();
```
需要注意的是,由于`c_str()`返回的指针指向的是`std::string`内部的字符数组,因此需要保证`std::string`对象的生命周期与使用该指针的代码段重叠,否则可能会导致指针指向无效的内存区域。
阅读全文