char与wchar_t(TCHAR)之间的相互转换

时间:2022-08-11 20:13:57

char与wchar_t(TCHAR)之间的相互转换

1、wchar_t类型数据的初始化

    char类型数据的初始化就不再骜述了;只说一下wchar_t类型的初始化:

wchar_t[] = L"我是wchar_t类型的数据";    //wchar_t类型数据初始化时前面需加上宏L

2、char与wchar_t之间的转换

    char与wchar_t类型数据之间的转换不能通过赋值的方式进行,只能通过 WideCharToMultiByteMultiByteToWideChar 两个系统函数进行,这两个系统函数都在<windows.h>中

1)、wchar_t转char

char * wchar2char(const wchar_t* wchar )
{
    char * m_char;    
    int len= WideCharToMultiByte( CP_ACP ,0,wchar ,wcslen( wchar ), NULL,0, NULL ,NULL );    
    m_char= new char[len+1];     
    WideCharToMultiByte( CP_ACP ,0,wp ,wcslen( wchar ),m_char,len, NULL ,NULL );     
    m_char[len]= '\0';     
    return m_char; 
}

2)、char转wchar_t

wchar_t * char2wchar(const char* cchar) 
{     
    wchar_t *m_wchar;    
    int len = MultiByteToWideChar( CP_ACP ,0,cchar ,strlen( cchar), NULL,0);     
    m_wchar= new wchar_t[len+1];     
    MultiByteToWideChar( CP_ACP ,0,cchar,strlen( cchar),m_wchar,len);     
    m_wchar[len]= '\0' ;    
    return m_wchar; 
}