wstring 转化为 string

#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  =   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;
}

转载于:https://www.cnblogs.com/duzouzhe/archive/2009/10/23/1588936.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值