windows c++ wchar_t* 转 string
时间: 2023-12-22 17:28:10 浏览: 266
深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
以下是将wchar_t*转换为string的两种方法:
1.使用wstring_convert
```c++
#include <locale>
#include <codecvt>
#include <string>
std::wstring ws_str(L"你好中国");
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::string str = converter.to_bytes(ws_str);
```
2.使用wcstombs_s和malloc/free
```c++
#include <stdlib.h>
#include <string>
char* wchar2char(const wchar_t* wStr){
char *str;
size_t len = wcslen(wStr) + 1;
size_t converted = 0;
str=(char*)malloc(len*sizeof(char));
wcstombs_s(&converted, str, len, wStr, _TRUNCATE);
char* res = str;
free(str);
return res;
}
wchar_t wc_str[] = L"你好中国";
char* c_str = wchar2char(wc_str);
std::string str(c_str);
```
阅读全文