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

C++多字節(jié)字符與寬字節(jié)字符相互轉換

 更新時間:2012年11月23日 15:12:52   作者:  
最近在C++編程中經(jīng)常遇到需要多字節(jié)字符與寬字節(jié)字符相互轉換的問題,自己寫了一個類來封裝wchar_t與char類型間的轉換
最近在C++編程中經(jīng)常遇到需要多字節(jié)字符與寬字節(jié)字符相互轉換的問題,一直自己貼那幾句代碼。覺得麻煩,于是就自己寫了一個類來封裝wchar_t與char類型間的轉換,其他的,諸如:CString\ LPWSTR\TCHAR CHAR\LPSTR之間也是一樣用
復制代碼 代碼如下:

#include <iostream>
using namespace std;
class CUser
{
public:
CUser();
virtual~ CUser();
char* WcharToChar(wchar_t* wc);//寬字節(jié)轉單字節(jié)
wchar_t* CharToWchar(char* c); //單字節(jié)轉寬字節(jié)
void Release();//釋放資源
private:
char* m_char;
wchar_t* m_wchar;
};
/////////////////////////////////////////////////////////////////////////////////////
/*字符類型 wchar_t char
/*獲取字符長度 wcslen() strlen()
/*連接兩個字符串 wcscat() strcpy()
/*復制字符串 wcscpy() strcpy()
/*比較兩個字符串 wcscmp() strcmp()
/*具體參數(shù)詳見www.linuxidc.com*/
////////////////////////////////////////////////////////////////////////////////////
CUser::CUser()
:m_char(NULL)
,m_wchar(NULL)
{
}
CUser::~CUser()
{
Release();
}
char* CUser::WcharToChar(wchar_t* wc)
{
Release();
int len= WideCharToMultiByte(CP_ACP,0,wc,wcslen(wc),NULL,0,NULL,NULL);
m_char=new char[len+1];
WideCharToMultiByte(CP_ACP,0,wc,wcslen(wc),m_char,len,NULL,NULL);
m_char[len]='\0';
return m_char;
}
wchar_t* CUser::CharToWchar(char* c)
{
Release();
int len = MultiByteToWideChar(CP_ACP,0,c,strlen(c),NULL,0);
m_wchar=new wchar_t[len+1];
MultiByteToWideChar(CP_ACP,0,c,strlen(c),m_wchar,len);
m_wchar[len]='\0';
return m_wchar;
}
void CUser::Release()
{
if(m_char)
{
delete m_char;
m_char=NULL;
}
if(m_wchar)
{
delete m_wchar;
m_wchar=NULL;
}
}

使用的時候非常簡單了:
復制代碼 代碼如下:

WCHAR* wc=findData.cFileName;
CUser u;
char* c=u.WcharToChar(wc);
cout<<c<<endl;
CUser u;
char* pBuffer=u.WcharToChar(szFullPath);
cout<<totalNum<<" "<<pBuffer<<endl;

相關文章

  • C語言進階:指針的進階(5)

    C語言進階:指針的進階(5)

    這篇文章主要介紹了C語言指針詳解及用法示例,介紹了其相關概念,然后分享了幾種用法,具有一定參考價值。需要的朋友可以了解下
    2021-09-09
  • 利用Debug調試代碼解決0xC0000005:?讀取位置?0x0000000000000000?時發(fā)生訪問沖突問題

    利用Debug調試代碼解決0xC0000005:?讀取位置?0x0000000000000000?時發(fā)生訪問沖突問

    這篇文章主要介紹了利用Debug調試代碼解決0xC0000005:?讀取位置?0x0000000000000000?時發(fā)生訪問沖突,本文給大家分享完美解決方案,需要的朋友可以參考下
    2023-03-03
  • C語言深入回顧講解結構體對齊

    C語言深入回顧講解結構體對齊

    C 數(shù)組允許定義可存儲相同類型數(shù)據(jù)項的變量,結構是 C 編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許你存儲不同類型的數(shù)據(jù)項,本篇讓我們來了解C 的結構體內(nèi)存對齊
    2022-06-06
  • C++數(shù)據(jù)結構之AVL樹的實現(xiàn)

    C++數(shù)據(jù)結構之AVL樹的實現(xiàn)

    AVL樹是高度平衡的而二叉樹,它的特點是AVL樹中任何節(jié)點的兩個子樹的高度最大差別為1,本文主要給大家介紹了C++如何實現(xiàn)AVL樹,需要的朋友可以參考下
    2022-06-06
  • C/C++后端學習與練習深入

    C/C++后端學習與練習深入

    這篇文章主要介紹了C/C++對于后端的學習與練習,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • C語言的程序環(huán)境與預處理你真的了解嗎

    C語言的程序環(huán)境與預處理你真的了解嗎

    這篇文章主要為大家詳細介紹了C語言的程序環(huán)境與預處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • c++中為什么不提倡使用vector示例詳解

    c++中為什么不提倡使用vector示例詳解

    這篇文章主要給大家介紹了關于c++中為什么不提倡使用vector的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c++具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • 動態(tài)數(shù)組C++實現(xiàn)方法(分享)

    動態(tài)數(shù)組C++實現(xiàn)方法(分享)

    下面小編就為大家?guī)硪黄獎討B(tài)數(shù)組C++實現(xiàn)方法(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 簡單介紹C++編程中派生類的析構函數(shù)

    簡單介紹C++編程中派生類的析構函數(shù)

    這篇文章主要介紹了C++編程中派生類的析構函數(shù),析構函數(shù)平時一般使用較少,需要的朋友可以參考下
    2015-09-09
  • 求子數(shù)組最大和的實例代碼

    求子數(shù)組最大和的實例代碼

    求子數(shù)組最大和的實例代碼,需要的朋友可以參考一下
    2013-03-03

最新評論