字符串的處理是編程中會經常遇到的問題,在字符串處理中寬窄字符的轉換是個很煩人的問題,往往在處理中為了在不同的函數中使用參數,要頻繁的將字符在寬窄之間轉換
下面是在工作中寫的兩個函數,實現寬窄字符的轉換
/***********************************************************************
* 將窄字節轉換為寬字節
***********************************************************************/
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 ;
}
不過多的解釋了,函數比較簡單,很實用