wchar_t 자료형의 필요성 테스트
#include <stdio.h>
#include <string.h>
#include <wchar.h>
#include <locale.h>
/* wchar_t 자료형의 필요성 */
int main(void) {
char *sample = "Hello World"; // 영문자만 포함된 문자열
char *str = "C 언어 String 분석"; // 영문, 한글 혼재된 문자열
wchar_t *wstr = L"자료형 wchar_t의 필요성"; // 모든 문자를 2바이트로 저장함
wchar_t wch;
int i;
char ch;
setlocale(LC_ALL, "korean");
/* 위의 문자열 중 영문(sample)을 가로가 아닌 세로로 출력해 본다면.....? */
for(i=0;(ch=sample[i])!=NULL;i++) {
printf("%c\n", ch); // 문자가 수직으로 제대로 출력됨
}
printf("\n");
/* 위의 문자열 중 영문,한글 혼재된 문자열(str)을 가로가 아닌 세로로 출력해 본다면.....? */
for(i=0;(ch=str[i])!=NULL;i++) {
printf("%c\n", ch); // 영문자는 무사하나 한글은 ? 으로 나타남, 2바이트 문자가 각바이트로 분리되었기 때문...
}
printf("\n");
/* 모든 문자를 2바이트로 저장하는 wchar_t 형을 사용하면 한글, 영문 모두 무사함 */
for(i=0;(wch=wstr[i])!=NULL;i++) {
wprintf(L"%c\n", wch);
}
printf("\n");
}