常见的C++字符串类型转换代码及讲解
时间: 2023-06-12 13:08:18 浏览: 185
在C++中,有多种字符串类型,如char*、string、wstring等,有时候需要将它们相互转换,下面是一些常见的字符串类型转换代码及讲解。
1. char* 转 string
```c++
const char* cstr = "hello world";
std::string str = cstr;
```
2. string 转 char*
```c++
std::string str = "hello world";
const char* cstr = str.c_str();
```
3. string 转 wstring
```c++
std::string str = "hello world";
std::wstring wstr(str.begin(), str.end());
```
4. wstring 转 string
```c++
std::wstring wstr = L"hello world";
std::string str(wstr.begin(), wstr.end());
```
5. char* 转 wstring
```c++
const char* cstr = "hello world";
std::wstring wstr;
wstr.assign(cstr, cstr + strlen(cstr));
```
6. wstring 转 char*
```c++
std::wstring wstr = L"hello world";
const wchar_t* wcstr = wstr.c_str();
size_t size = wcslen(wcstr) + 1;
char* cstr = new char[size];
wcstombs(cstr, wcstr, size);
```
需要注意的是,对于char* 转 wstring以及wstring 转 char*,需要考虑编码方式,因为wchar_t 是双字节编码,char 是单字节编码,不同的编码方式可能会导致转换出现问题。
阅读全文