C++中wstring与string相互转化
来源:互联网 发布:python idle使用技巧 编辑:程序博客网 时间:2024/06/08 12:08
//wstring转string
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;
}
//string转wstring
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;
}
//string转wstring
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;
}
0 0
- C++中wstring与string相互转化
- C++中wstring与string相互转化
- C++中wstring与string相互转化
- wstring与string相互转换
- wstring与string相互转换
- string与wstring的相互转换
- Android 中 String与Int相互转化
- C++: wstring与string互转
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
- double与string的相互转化(C++)
- double与string的相互转化(C++)
- double与string的相互转化(C++)
- C/C++ --- double与string的相互转化
- CString与string相互转化
- time_t与string相互转化
- char[]与string相互转化
- json与string相互转化
- c++中char*\wchar_t*\string\wstring之间的相互转换
- java对象的生命周期及回收
- Cocos2dx开发之锚点实例讲解
- Kth Smallest Element in a BST
- 2015 Multi-University Training Contest 2
- JavaScript启示录
- C++中wstring与string相互转化
- JAVA代码编写规范(摘选)
- Category分类的基本使用
- Linux 发送信号, 修改键映射
- Objective-C Runtime
- AutoLayout(二)
- PAT (Advanced Level) 1033. To Fill or Not to Fill (25)最省加油方案,贪心算法
- poj1651-Multiplication Puzzle-区间dp/矩阵链乘
- find_text_bottle_label.hdev相关例程学习