c++ string 和wstring 之间的互相转换函数

#include <string>
std::
string ws2s(const std::wstring& ws)
{
   std::
string curLocale = setlocale(LC_ALL, NULL);        // curLocale = "C";
   setlocale(LC_ALL, "chs");
const wchar_t* _Source = ws.c_str();
   size_t _Dsize
=2* ws.size() +1;
char*_Dest =newchar[_Dsize];
   memset(_Dest,
0,_Dsize);
   wcstombs(_Dest,_Source,_Dsize);
   std::
string result = _Dest;
   delete []_Dest;
   setlocale(LC_ALL, curLocale.c_str());
return result;
}

std::wstring s2ws(
const std::string& s)
{
   setlocale(LC_ALL,
"chs");
constchar* _Source = s.c_str();
   size_t _Dsize
= s.size() +1;
   wchar_t
*_Dest =new wchar_t[_Dsize];
   wmemset(_Dest,
0, _Dsize);
   mbstowcs(_Dest,_Source,_Dsize);
   std::wstring result
= _Dest;
   delete []_Dest;
   setlocale(LC_ALL,
"C");
return result;
}

你可能感兴趣的:(return,include,result)