//********* char* 转 wchar_t*字符串
时间: 2023-10-07 13:05:50 浏览: 95
可以使用以下两种方法将char*转换为wchar_t*字符串:
方法1:使用mbstowcs函数
```
#include <iostream>
#include <cstdlib>
#include <cwchar>
using namespace std;
wchar_t* charToWchar(const char* str) {
size_t len = strlen(str) + 1;
wchar_t* wstr = new wchar_t[len];
mbstowcs(wstr, str, len);
return wstr;
}
int main()
{
const char* charStr = "Hello, world!";
wchar_t* wcharStr = charToWchar(charStr);
wcout << wcharStr << endl;
delete[] wcharStr;
return 0;
}
```
方法2:使用MultiByteToWideChar函数(Windows环境)
```
#include <iostream>
#include <windows.h>
using namespace std;
wchar_t* charToWchar(const char* str) {
int size = MultiByteToWideChar(CP_UTF8, 0, str, -1, nullptr, 0);
wchar_t* wstr = new wchar_t[size];
MultiByteToWideChar(CP_UTF8, 0, str, -1, wstr, size);
return wstr;
}
int main()
{
const char* charStr = "Hello, world!";
wchar_t* wcharStr = charToWchar(charStr);
wcout << wcharStr << endl;
delete[] wcharStr;
return 0;
}
```
以上两种方法都是将char*字符串转换为wchar_t*字符串的常用方法,可以根据具体的需求选择适合的方法进行转换。
阅读全文