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 댓글