char*转wchar_t
时间: 2023-10-23 08:12:49 浏览: 121
深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
可以使用C++标准库中的wstring来进行转换。示例代码如下:
```
#include <string>
#include <locale>
// 将char*转为wstring
std::wstring charToWchar(const char* str)
{
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
return conv.from_bytes(str);
}
// 将wchar_t*转为wstring
std::wstring wcharToWstring(const wchar_t* wstr)
{
return std::wstring(wstr);
}
// 将char*转为wchar_t*
wchar_t* charToWcharT(const char* str)
{
std::wstring wstr = charToWchar(str);
wchar_t* wptr = new wchar_t[wstr.length() + 1];
wcscpy(wptr, wstr.c_str());
return wptr;
}
```
其中,charToWchar函数将char*转为wstring,wcharToWstring函数将wchar_t*转为wstring,charToWcharT函数将char*转为wchar_t*。需要注意的是,在charToWcharT函数中,我们需要使用动态分配的内存来存储wchar_t*,并且在使用完后需要手动释放。
阅读全文