欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++寬字符與普通字符的轉(zhuǎn)換實例詳解

 更新時間:2017年06月15日 10:45:13   投稿:lqh  
這篇文章主要介紹了C++寬字符與普通字符的轉(zhuǎn)換實例詳解的相關資料,需要的朋友可以參考下

C++寬字符與普通字符的轉(zhuǎn)換實例詳解

把字符串轉(zhuǎn)換成寬字符串,

實例代碼:

wstring string2Wstring(string sToMatch) 
{   
#ifdef _A_WIN 
  int iWLen = MultiByteToWideChar( CP_ACP, 0, sToMatch.c_str(), sToMatch.size(), 0, 0 ); // 計算轉(zhuǎn)換后寬字符串的長度。(不包含字符串結束符) 
  wchar_t *lpwsz = new wchar_t [iWLen + 1]; 
  MultiByteToWideChar( CP_ACP, 0, sToMatch.c_str(), sToMatch.size(), lpwsz, iWLen ); // 正式轉(zhuǎn)換。 
  lpwsz[iWLen] = L'/0';  
  wstring wsToMatch(lpwsz); 
  delete []lpwsz; 
#elif _A_LINUX 
  setlocale( LC_CTYPE, "" ); // 很重要,沒有這一句,轉(zhuǎn)換會失敗。 
  int iWLen = mbstowcs( NULL, sToMatch.c_str(), sToMatch.length() ); // 計算轉(zhuǎn)換后寬字符串的長度。(不包含字符串結束符) 
  wchar_t *lpwsz = new wchar_t[iWLen + 1]; 
  int i = mbstowcs( lpwsz, sToMatch.c_str(), sToMatch.length() ); // 轉(zhuǎn)換。(轉(zhuǎn)換后的字符串有結束符) 
  wstring wsToMatch(lpwsz); 
  delete []lpwsz; 
#endif 
  return wsToMatch; 
} 
//把寬字符串轉(zhuǎn)換成字符串,輸出使用 
string wstring2string(wstring sToMatch) 
{   
#ifdef _A_WIN 
  string sResult; 
  int iLen = WideCharToMultiByte( CP_ACP, NULL, sToMatch.c_str(), -1, NULL, 0, NULL, FALSE ); // 計算轉(zhuǎn)換后字符串的長度。(包含字符串結束符) 
  char *lpsz = new char[iLen]; 
  WideCharToMultiByte( CP_OEMCP, NULL, sToMatch.c_str(), -1, lpsz, iLen, NULL, FALSE); // 正式轉(zhuǎn)換。 
  sResult.assign( lpsz, iLen - 1 ); // 對string對象進行賦值。 
  delete []lpsz; 
#elif _A_LINUX 
  int iLen = wcstombs( NULL, sToMatch.c_str(), 0 ); // 計算轉(zhuǎn)換后字符串的長度。(不包含字符串結束符) 
  char *lpsz = new char[iLen + 1]; 
  int i = wcstombs( lpsz, sToMatch.c_str(), iLen ); // 轉(zhuǎn)換。(沒有結束符) 
  lpsz[iLen] = '/0'; 
  string sResult(lpsz); 
  delete []lpsz; 
#endif 
  return sResult; 
} 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • C++ 賦值構造函數(shù)注意點介紹

    C++ 賦值構造函數(shù)注意點介紹

    下面小編就為大家?guī)硪黄狢++ 賦值構造函數(shù)注意點介紹。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C語言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例

    C語言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例

    深度優(yōu)先搜索即是對一個新發(fā)現(xiàn)的節(jié)點上如果還關聯(lián)未探測到的邊,就沿此邊探測下去,直到發(fā)現(xiàn)從原點可達的所有點為止,這里我們就來展示C語言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例
    2016-06-06
  • C語言折半查找法的由來及使用詳解

    C語言折半查找法的由來及使用詳解

    折半查找法也叫做?分查找,顧名思義就是把數(shù)據(jù)分成兩半,再判斷所查找的key在哪?半中,再重復上述步驟知道找到?標key,下面這篇文章主要給大家介紹了關于C語言折半查找法的相關資料,需要的朋友可以參考下
    2022-08-08
  • 詳談C++ socket網(wǎng)絡編程實例(2)

    詳談C++ socket網(wǎng)絡編程實例(2)

    這篇文章主要為大家介紹了C++ socket網(wǎng)絡編程實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • C++友元函數(shù)和友元類的使用與區(qū)別

    C++友元函數(shù)和友元類的使用與區(qū)別

    本文主要介紹了C++友元函數(shù)和友元類的使用與區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • C語言之選擇分支語句詳解

    C語言之選擇分支語句詳解

    大家好,本篇文章主要講的是C語言之選擇分支語句詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C/C++實現(xiàn)馬踏棋盤算法

    C/C++實現(xiàn)馬踏棋盤算法

    這篇文章主要為大家詳細介紹了C/C++實現(xiàn)馬踏棋盤算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 深入了解C++11中promise和future的使用

    深入了解C++11中promise和future的使用

    C++11中promise和future機制是用于并發(fā)編程的一種解決方案,用于在不同線程完成數(shù)據(jù)傳遞(異步操作)。Promise和Future提供了訪問異步操作結果的機制,可以在線程之間傳遞數(shù)據(jù)和異常消息。本文就來聊聊二者的使用,希望對大家有所幫助
    2022-11-11
  • C++?雙向循環(huán)鏈表類模版實例詳解

    C++?雙向循環(huán)鏈表類模版實例詳解

    這篇文章主要為大家詳細介紹了C++?雙向循環(huán)鏈表類模版實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++繼承與菱形繼承詳細介紹

    C++繼承與菱形繼承詳細介紹

    繼承(inheritance)機制是面向?qū)ο蟪绦蛟O計使代碼可以復用的最重要的手段,它允許程序員在保持原有類特性的基礎上進行擴展,增加功能,這樣產(chǎn)生新的類,稱派生類。繼承呈現(xiàn)了面向?qū)ο蟪绦蛟O計的層次結構,體現(xiàn)了由簡單到復雜的認知過程
    2022-08-08

最新評論