龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC中宽字节与窄字节转换问题

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
字符串的处理是编程中会经常遇到的问题,在字符串处理中宽窄字符的转换是个很烦人的问题,往往在处理中为了在不同的函数中使用参数,要频繁的将字符在宽窄之间转换 下面是在工作中

字符串的处理是编程中会经常遇到的问题,在字符串处理中宽窄字符的转换是个很烦人的问题,往往在处理中为了在不同的函数中使用参数,要频繁的将字符在宽窄之间转换

下面是在工作中写的两个函数,实现宽窄字符的转换

/***********************************************************************
*      将窄字节转换为宽字节        
***********************************************************************/
std::wstring toWideString( const char* pStr , int len )
{
 std::wstring buf ;
 len = strlen(pStr);
 wchar_t* buff;
 buff = new wchar_t[len+1];
 setlocale(LC_ALL,".936");
 int nChars = mbstowcs(buff,pStr,len+1);
 setlocale(LC_ALL,"C");
 buf = buff;
 delete buff;
 return buf;

}
/**********************************************************************
*      将宽字节转换为窄字节        
***********************************************************************/
std::string toNarrowString( const wchar_t* pStr , int len )
{
 char* buff = new char[len*2+1];
 memset(buff,0,len*2+1);
 setlocale(LC_ALL,".936");
 int nChars = wcstombs(buff,pStr,len*2+1);
 setlocale(LC_ALL,"C");
 std::string buf (buff);
 delete buff;
 return buf ;
}

不过多的解释了,函数比较简单,很实用

精彩图集

赞助商链接