wstring怎么用
时间: 2024-09-15 11:07:57 浏览: 36
wstring是Windows API和一些C++环境中用于表示宽字符字符串的数据类型,它通常用于处理包含非ASCII字符的语言,如中文、日文等。与普通的char*或std::string不同,wstring每个元素占用两个字节,以便存储Unicode字符。
在C++中,你可以这样做:
1. 定义wstring变量:
```cpp
#include <wstring>
wstring myString = L"你好,世界"; // 使用L前缀表示宽字符串
```
2. 创建或转换字符串:
```cpp
std::wstring utf8ToWide(const std::string& str) {
int len = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0);
wchar_t* wideStr = new wchar_t[len];
MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, wideStr, len);
return wideStr;
}
std::string wideToUtf8(const wstring& ws) {
int size = WideCharToMultiByte(CP_UTF8, 0, ws.c_str(), -1, NULL, 0, NULL, NULL);
char* utf8Str = new char[size];
WideCharToMultiByte(CP_UTF8, 0, ws.c_str(), -1, utf8Str, size, NULL, NULL);
std::string result(utf8Str);
delete[] utf8Str;
return result;
}
```
3. 运行操作,如连接、比较或输出:
```cpp
wstring combined = myString + L" " + utf8ToWide("Hello");
wcout << combined; // 输出宽字符到控制台
```
阅读全文