c++中如何将string转换为char[]
时间: 2023-12-28 18:04:16 浏览: 71
可以通过以下两种方法将string类型转换为char[]类型:
1.使用c_str()函数:
```c++
string str = "hello";
const char* charArray = str.c_str();
```
2.使用strcpy()函数:
```c++
string str = "hello";
char charArray[6]; // 需要给数组分配足够的空间,包括字符串结尾的'\0'
strcpy(charArray, str.c_str());
```
需要注意的是,使用第二种方法时需要保证char[]数组足够大,包括字符串结尾的'\0',否则可能导致内存溢出。
相关问题
c++如何将string转换成char*
可以使用string的c_str()函数将string转换为char*。
例如:
```c++
string str = "hello";
char* cstr = &str[0];
```
或者:
```c++
string str = "world";
const char* cstr = str.c_str();
```
需要注意的是,如果使用第一种方法,需要确保string不为空,否则会出现未定义的行为。
c++中string转换为char
将C++中的`std::string`类型转换为C语言中的`char`类型数组可以通过以下两种方式实现:
1. 使用`c_str()`函数
`c_str()`函数可以返回一个指向`string`对象中存储的C风格字符串的指针,因此可以通过将其赋值给`char`类型数组来实现转换。
示例代码如下:
```c++
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
char char_arr[str.size() + 1];
strcpy(char_arr, str.c_str());
std::cout << char_arr << std::endl;
return 0;
}
```
2. 使用`copy()`函数
`copy()`函数可以将`string`对象中的字符复制到指定的字符数组中,因此也可以通过使用`copy()`函数来实现转换。
示例代码如下:
```c++
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
char char_arr[str.size() + 1];
str.copy(char_arr, str.size() + 1);
char_arr[str.size()] = '\0';
std::cout << char_arr << std::endl;
return 0;
}
```
需要注意的是,在使用`copy()`函数时,需要在字符数组的最后一个位置添加空字符(`\0`),以确保字符数组以空字符结尾,否则可能会出现不可预期的结果。
阅读全文