mbstowcs_s 예제

mbstowcs_s 예제(C++)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <wchar.h>
 
int main(void)
{
    size_t rv;
    const char* pszSource = "안녕하세요?";
    wchar_t wszDest[16];

    setlocale(LC_ALL, "korean");
    mbstowcs_s(&rv, wszDest, pszSource, _TRUNCATE);
    wprintf(L"     Multibyte string: %hs\n", pszSource);
    wprintf(L"Wide character string: %ls\n", wszDest);

    return 0;
}


mbstowcs_s 예제(C)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <wchar.h>
 
int main(void)
{
    size_t rv;
    const char* pszSource = "안녕하세요?";
    wchar_t wszDest[16];

    setlocale(LC_ALL, "korean");
    mbstowcs_s(&rv, wszDest, _countof(wszDest), pszSource, _TRUNCATE);
    wprintf(L"     Multibyte string: %hs\n", pszSource);
    wprintf(L"Wide character string: %ls\n", wszDest);

    return 0;
}


mbstowcs_s 예제(C++)
유니코드로 변경된 후의 문자열 길이를 모를 때

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <wchar.h>
 
int main(void)
{
    size_t rv = 0;
    const char* pszSource = "안녕하세요?";
    wchar_t* pwszDest;

    // Locale 설정
    setlocale(LC_ALL, "korean");

    // 변환된 후의 길이 구하기
    mbstowcs_s(&rv, NULL, 0, pszSource, _TRUNCATE);

    // 메모리 확보
    pwszDest = new wchar_t[rv];

    // 하고 싶은 일(유니코드로 변환)
    mbstowcs_s(&rv, pwszDest, rv, pszSource, _TRUNCATE);

    // 결과 출력
    wprintf(L"     Multibyte string: %hs\n", pszSource);
    wprintf(L"Wide character string: %ls\n", pwszDest);

    // 뒷정리
    delete [] pwszDest;

    return 0;
}


댓글 쓰기

0 댓글