C++中char*与wchar_t*之间的转换
时间: 2023-07-31 12:09:02 浏览: 239
char wchar_t 之间的转换程序
在C++中,char*和wchar_t*是两种不同的字符串类型,分别表示单字节和双字节字符集。如果需要在这两种类型之间进行转换,可以使用以下方法:
1. char*转换为wchar_t*:
可以使用以下函数将char*转换为wchar_t*:
```c++
wchar_t* charToWchar(const char* str)
{
size_t len = strlen(str) + 1;
wchar_t* wstr = new wchar_t[len];
size_t converted = 0;
mbstowcs_s(&converted, wstr, len, str, _TRUNCATE);
return wstr;
}
```
2. wchar_t*转换为char*:
可以使用以下函数将wchar_t*转换为char*:
```c++
char* wcharToChar(const wchar_t* wstr)
{
size_t len = wcslen(wstr) + 1;
char* str = new char[len];
size_t converted = 0;
wcstombs_s(&converted, str, len, wstr, _TRUNCATE);
return str;
}
```
需要注意的是,以上方法都会分配新的内存空间,需要在使用完后手动释放内存。
阅读全文