본문 바로가기

C++/A2W()

C++ A2W() Macro example

C++에서 A2W()매크로 함수를 이용하여 MBCS문자열을 WBCS(Unicode)문자열로 변환하는 예


A2W()를 이용하여 유니코드 문자열을 얻고 유니코드문자열을 구성하는 각 문자의 유니코드 숫자를 버퍼에 나열하여 출력하는 예제


#include <windows.h>

#include <tchar.h>

#include <iostream>

#include <atlconv.h>


using namespace std;


// MBCS문자열을 유니코드문자로 변경하여 그 유니코드 수를 모두 나열한 예


int _tmain(int argc, _TCHAR* argv[])                

{


USES_CONVERSION;

char szMult[] = "A가나다B";          // MBCS 문자열


wchar_t *wch = A2W(szMult);  // 유니코드문자열로 변환

char string[80];

int n = (int)wch[0];          // 유니코드 한 문자를 정수로 변환


char ch[12];

_itoa(n, ch,10);         // 정수를 다시 아스키 문자로 변환

strcpy_s( string, _countof(string), ch );           // 문자화된 정수를 버퍼에 저장한다


for(int i=1;i< lstrlen(wch);i++)

{

n = (int)wch[i];

_itoa(n, ch,10);

strcat_s(string, _countof(string), ch);     // 문자화된 정수를 버퍼에 모두 연결하여 저장한다

}


cout << string << endl; // 각 문자의 유니코드 숫자가 모두 연결된 문자열을 출력한다


cout << "끝" << endl;

    return 0;

}