std::string、char *、char[]、const char*的转换
时间: 2024-03-22 21:39:39 浏览: 251
这几种类型之间的转换可以通过以下方式实现:
1. std::string 转 char * 或 char[]
可以使用 std::string 的 c_str() 方法来获取一个以 null 结尾的 char 数组,例如:
```cpp
std::string str = "hello";
char *cstr = &str[0]; // 或者 char *cstr = str.data();
```
或者使用 std::string 的 copy() 方法将字符串复制到一个 char 数组中,例如:
```cpp
std::string str = "hello";
char cstr[6];
str.copy(cstr, 5);
cstr[5] = '\0';
```
2. char * 或 char[] 转 std::string
可以使用字符串构造函数将 char 数组转换为 std::string,例如:
```cpp
char cstr[] = "hello";
std::string str(cstr);
```
或者使用 std::string 的 assign() 方法将 char 数组复制到 std::string 中,例如:
```cpp
char cstr[] = "hello";
std::string str;
str.assign(cstr);
```
3. const char* 转 std::string
可以使用字符串构造函数将 const char* 转换为 std::string,例如:
```cpp
const char* cstr = "hello";
std::string str(cstr);
```
或者使用 std::string 的 assign() 方法将 const char* 复制到 std::string 中,例如:
```cpp
const char* cstr = "hello";
std::string str;
str.assign(cstr);
```
阅读全文