C/C

C char 그리고 wchar_t 문자, 문자열

HicKee 2022. 9. 28. 15:37

char

#include <stdio.h>
int main()
{   
    char ch = 'ㄱ';
    printf("%c\n", ch);
    return 0;
}

 출력

?

한글 한 문자는 2바이트 영어 한 문자는 1바이트 영어는 저장하지만 한글은 저장하지 못한다.

1바이트 크기인 char 로는 한글에 있는 모든 문자를 표현하지 못한다.

char 이용해서 한글을 출력하려면 [] 배열이 필요하다

 

wchar_t

#include <stdio.h>
#include <wchar.h>

int main()
{   
    wchar_t ch = L'ㄱ';
    wprintf(L"%c\n", ch);
    return 0;
}

출력

?

wchar.h 헤더 파일에 선언

 

wchar_t 형 문자 사용시 대문자 L과 함께 사용 (예: L’한’)

wchar_t 형식 문자열 사용시 대문자 L과 함께 문자열 사용 (예: L”한글”)

wchar_t 를 출력하기위해서는 wprintf 사용

 

>> ? 또는 이상한 문자 가 출력됨

locale.h 파일을 포함하고 setlocale 함수를 호출하여 지역을 지정

 

 

setlocale 함수를 호출하여 지역을 지정

setlocale(LC_ALL, "")

setlocale(LC_ALL, "Korean")을 해 주어도 동작하지만 컴퓨터의 시스템 지역 설정 setlocale(LC_ALL, "")를 사용

#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main()
{   
    setlocale(LC_ALL, "");
    wchar_t ch = L'ㄱ';
    wprintf(L"%c\n", ch);
    return 0;
}

출력

 

 

2022.09.27 - [문제 연습/C] - C 한글 한 글자 합쳐서 이름 만들기 (파일 제어 프로그램)

 

C 한글 한 글자 합쳐서 이름 만들기 (파일 제어 프로그램)

-----------------------------  파일 제어 프로그램 v1.1 ----------------------------- 1. 이름 생성하여 파일에 저장하기 2. 파일에서 이름 읽어오기 3. 프로그램 종료 ----------------------------- 메뉴..

hickee.tistory.com

 

'C > C' 카테고리의 다른 글

포인터 pointer 1 - & 과 역 참조  (0) 2022.10.01
static  (0) 2022.09.29
scanf() C4996 오류 이유, 해결  (0) 2022.09.26
묵시적 형 변환, 명시적 형 변환  (0) 2022.09.25
연산자 01  (0) 2022.09.22