char*与wchar_t*之间的转换
时间: 2023-07-23 18:09:47 浏览: 87
char*和wchar_t*是两种不同的字符串类型,char*是用于表示ANSI编码的字符串,而wchar_t*是用于表示Unicode编码的字符串。在C++中,我们可以使用以下两个函数进行char*和wchar_t*之间的转换:
1. char* 转 wchar_t*
可以使用C++标准库中的mbstowcs函数将char*转换为wchar_t*。该函数的原型如下:
```cpp
size_t mbstowcs(wchar_t* dest, const char* src, size_t max);
```
其中,dest是目标字符串的指针,src是源字符串的指针,max是目标字符串的最大长度。
示例代码:
```cpp
char* str = "Hello, world!";
size_t len = strlen(str);
wchar_t* wstr = new wchar_t[len + 1];
mbstowcs(wstr, str, len + 1);
```
2. wchar_t* 转 char*
可以使用C++标准库中的wcstombs函数将wchar_t*转换为char*。该函数的原型如下:
```cpp
size_t wcstombs(char* dest, const wchar_t* src, size_t max);
```
其中,dest是目标字符串的指针,src是源字符串的指针,max是目标字符串的最大长度。
示例代码:
```cpp
wchar_t* wstr = L"Hello, world!";
size_t len = wcslen(wstr);
char* str = new char[len + 1];
wcstombs(str, wstr, len + 1);
```
阅读全文