char* 怎么转换为wstring
时间: 2024-02-07 15:02:03 浏览: 105
深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
可以使用标准库中的`std::wstring_convert`来进行转换。
首先需要包含头文件:
```c++
#include <locale>
#include <codecvt>
```
然后,定义一个`std::wstring_convert`对象,并使用其`from_bytes`成员函数将`char*`转换为`std::wstring`类型:
```c++
std::string str = "Hello, world!";
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::wstring wstr = converter.from_bytes(str);
```
代码解释:
- `std::wstring_convert`是一个模板类,需要指定编码转换器类型。这里使用的是`std::codecvt_utf8<wchar_t>`,表示将UTF-8编码的字符串转换为`wchar_t`类型的字符串。
- `from_bytes`成员函数接受一个`std::string`类型的参数,返回一个`std::wstring`类型的字符串。
完整代码:
```c++
#include <iostream>
#include <locale>
#include <codecvt>
int main() {
std::string str = "Hello, world!";
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::wstring wstr = converter.from_bytes(str);
std::wcout << wstr << std::endl;
return 0;
}
```
阅读全文