WCHAR转string
时间: 2023-11-19 22:05:49 浏览: 95
WCHAR和CHAR互转小例子
4星 · 用户满意度95%
在处理中文时,wchar_t和wstring类型通常用于存储Unicode字符,而string和char类型则用于存储ASCII字符。如果需要将wchar_t或wstring类型转换为string类型,可以使用以下代码:
```c++
#include <string>
#include <locale>
#include <codecvt>
std::wstring wstr = L"你好世界";
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::string str = converter.to_bytes(wstr);
```
这里使用了std::wstring_convert和std::codecvt_utf8<wchar_t>来进行转换。首先将wchar_t或wstring类型的字符串存储在wstr变量中,然后使用std::wstring_convert<std::codecvt_utf8<wchar_t>>来创建一个转换器,最后使用converter.to_bytes(wstr)将wstr转换为string类型的str变量。
需要注意的是,这种方法需要使用C++11及以上的版本才能使用。如果使用的是旧版本的C++,可以使用以下代码:
```c++
#include <string>
#include <sstream>
std::wstring wstr = L"你好世界";
std::string str;
std::stringstream ss;
ss << wstr;
ss >> str;
```
这里使用了std::stringstream来进行转换。首先将wchar_t或wstring类型的字符串存储在wstr变量中,然后创建一个std::stringstream对象ss,将wstr插入到ss中,最后使用ss >> str将ss中的内容转换为string类型的str变量。
阅读全文