C++中wstring与string相互转化
2013-01-11 01:07
344 查看
<span style="font-size:18px; ">转载地址:<a href="http://www.cppblog.com/kenwell/archive/2008/05/21/50661.html">http://www.cppblog.com/kenwell/archive/2008/05/21/50661.html</a></span>
[cpp] view
plaincopy
<span style="font-size:18px; ">
</span>
[cpp] view
plaincopy
<span style="font-size:18px; ">#include <string></span>
[cpp] view
plaincopy
<span style="font-size:18px;">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 = new char[_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");
const char* _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;
}</span>
[cpp] view
plaincopy
<span style="font-size:18px; ">
</span>
[cpp] view
plaincopy
<span style="font-size:18px; ">#include <string></span>
[cpp] view
plaincopy
<span style="font-size:18px;">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 = new char[_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");
const char* _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;
}</span>
相关文章推荐
- C++中wstring与string相互转化
- C++中wstring与string相互转化
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
- C++基础——bitset与string的相互转化
- c++中char*\wchar_t*\string\wstring之间的相互转换 .
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
- C++中char*\wchar_t*\string\wstring之间的相互转换:
- C++ int与string类型相互转化
- c++ int 类型与string类型的相互转化
- C++中各种string的相互转化
- C++ 中 string 和其它类型的相互转化。
- C++中char*\wchar_t*\string\wstring之间的相互转换
- [C++杂记] char*\const char*\string相互转化
- c++中char*\wchar_t*\string\wstring之间的相互转换
- c++的字符串char与string相互转化,以及string的,切割,替换字符,字符串拼接方法(object向c++转型系列教程2)
- c++ int,char,wchar_t,double,string,wstring相互转
- 【C++】string 和 int 的相互转化
- C++中string和int的相互转化
- c++中char*\wchar_t*\string\wstring之间的相互转换
- 【转】wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....相互之间的转化