wtring如何转化成string
wtring如何转化成string
[解决办法]
比较麻烦,就我所知,需要用C函数wcstombs,而且还不能直接转,得用vector <char> 过渡。
wstring wstr( "asfasd ");
vector <char> vstr(wstr.size()*2);
size_t len=wcstombs(&vstr[0],wstr.c_str(), INT_MAX);
string str(vstr.begin(), vstr.begin()+len);
我也一直在找C++标准库是不是存在什么直接的转换方法。
[解决办法]
刚说完,又来了, 先转成char数组,然后赋值给string;
#include <locale>
char czz[101]= "Begin被替换End ";
wstring str2 = L "中1中文2 ";
string str;
setlocale(LC_ALL, " "); //设置本地默认
wcstombs(czz,str2.c_str(),sizeof(czz));
setlocale(LC_ALL, "C "); //用完恢复
str=czz;