string转换为char*
时间: 2023-12-20 07:06:49 浏览: 26
可以通过以下方法将字符串(string)转换为字符数组(char*):
```c++
#include <iostream>
#include <cstring>
int main() {
std::string str = "Hello, world!";
// 将string转换为字符数组
char* char_arr = new char[str.length() + 1];
std::strcpy(char_arr, str.c_str());
std::cout << char_arr << std::endl;
delete[] char_arr; // 释放内存
return 0;
}
```
在上述代码中,我们使用了`std::strcpy`函数将字符串复制到字符数组中。需要注意的是,在分配字符数组的内存时,需要为字符串末尾的空字符`\0`留出一个位置。由于字符数组是手动分配的内存,因此在使用后应该及时释放。
相关问题
c++如何将string转化为char*
可以使用 string 的 c_str() 方法来将 string 转换为 char* 类型,示例如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "hello world";
char* charArr = new char[str.length() + 1];
strcpy(charArr, str.c_str());
cout << charArr << endl;
delete []charArr;
return 0;
}
```
需要注意的是,使用 c_str() 方法返回的 char* 指针指向的字符串是只读的,不能修改,否则会导致运行时错误。如果需要修改字符串内容,可以使用 strcpy() 函数将其拷贝到另一个 char* 数组中。另外,由于 charArr 是通过 new 动态分配的内存,需要在使用完毕后使用 delete[] 释放内存,避免内存泄漏。
std::string 转化为 char *
可以使用 std::string 的 c_str() 函数将其转化为 char *。例如:
std::string str = "Hello World";
char *cstr = str.c_str();
这样就可以将 std::string 转化为 char *。