std::string怎么转为char*
时间: 2023-11-15 10:05:18 浏览: 83
C++中CString string char* char 之间的字符转换(多种方法)
可以通过以下两种方式将std::string转换为char*:
1. 使用c_str()函数
可以使用std::string的c_str()函数将字符串转换为指向char类型的指针,示例代码如下:
```
std::string str = "Hello, world!";
char* char_array = &str[0];
```
这样就可以把std::string对象转换为指向char类型的指针char_array。
需要注意的是,由于c_str()函数返回的指针指向的是std::string对象内部的字符数组,因此在使用该指针时,需要保证std::string对象的生命周期大于等于使用该指针的生命周期,否则会导致未定义行为。
2. 使用strcpy()函数
另一种方式是使用strcpy()函数,该函数可以将一个字符串复制到另一个字符数组中,示例代码如下:
```
std::string str = "Hello, world!";
char char_array[str.size() + 1];
strcpy(char_array, str.c_str());
```
这样就可以把std::string对象转换为字符数组char_array。
需要注意的是,由于字符数组char_array的大小要比std::string对象的长度大1,因为strcpy()函数会在字符数组的末尾添加一个null字符('\0')。
阅读全文