std::string换成std::wstring
时间: 2023-06-25 07:08:10 浏览: 162
String与WString的字符转换代码
将 std::string 换成 std::wstring 需要注意以下几点:
1. std::wstring 中的每个字符占用两个字节,而不是一个字节,因此需要使用 L 前缀表示字符串常量。例如,使用 L"Hello, world!" 表示宽字符串 "Hello, world!"。
2. std::wstring 中的字符类型为 wchar_t,而不是 char,因此需要使用函数和类型定义的宽字符版本。例如,使用 std::wcout 和 std::wcin 分别代替 std::cout 和 std::cin。
3. 如果使用 Windows API,也需要使用宽字符版本的函数。例如,使用 MessageBoxW 函数代替 MessageBoxA 函数。
下面是一个简单的示例,将 std::string 转换为 std::wstring:
```c++
#include <iostream>
#include <string>
int main()
{
std::string s = "Hello, world!";
std::wstring ws(s.begin(), s.end());
std::wcout << ws << std::endl;
return 0;
}
```
这个示例中,使用 std::wstring 构造函数将 std::string 转换为 std::wstring,然后使用 std::wcout 输出。
阅读全文