C 기본 문법 – 기본 데이터 타입 – 2 – 문자형

C 기본 문법 – 기본 데이터 타입 – 2편: 문자형 완벽 정리!

안녕하세요, 열정 가득한 C 언어 학습자 여러분 😊
이번 시간에는 숫자에서 잠시 벗어나서 문자형(char) 데이터 타입에 대해 배워보려고 해요.
C 언어에서 문자는 단순히 글자 하나만 의미하지 않아요.
컴퓨터와 대화를 할 수 있는 아주 중요한 문자의 코드값, 바로 **아스키코드(ASCII Code)**와도 관련이 깊답니다!

그럼 지금부터 문자형의 세계를 낱낱이 살펴보도록 할게요.
📚 차근차근, 예시와 함께 이해해 보겠습니다!


문자형(char)이란?

문자형(char)은 하나의 문자를 저장하는 자료형이에요.
'A', 'b', '1', '@' 같은 문자 하나를 작은 따옴표(')로 감싸서 표현합니다.

특징

  • 크기: 1바이트 (8비트)
  • 표현 범위: -128 ~ 127 (signed char)
    0 ~ 255 (unsigned char)
  • 실질적으로는 정수형과 동일하게 취급되며, 아스키코드 값으로 저장돼요.

문자형 변수 선언과 초기화

char ch = 'A';

📌 꼭 '작은 따옴표를 사용해야 해요!
큰 따옴표("A")는 문자열(String)로 처리되어 전혀 다른 의미입니다.


아스키 코드(ASCII)란?

아스키코드는 문자와 숫자를 1:1로 매핑한 국제 표준 코드 체계입니다.

문자 아스키 코드 값
'A' 65
'a' 97
'0' 48
' ' (공백) 32
'!' 33
`’
‘` 10 (줄 바꿈)

예시: 문자와 아스키 값 출력

#include <stdio.h>

int main() {
    char ch = 'A';
    printf("문자: %c, 아스키값: %d
", ch, ch);
    return 0;
}

결과:

문자: A, 아스키값: 65

🎯 %c: 문자 출력, %d: 아스키코드(정수) 출력


다양한 특수 문자와 이스케이프 시퀀스

문자 의미 코드
`’
‘` 줄 바꿈 10
'\t' 탭(tab) 9
'\r' 캐리지 리턴 13
'\b' 백스페이스 8
'\'' 작은 따옴표 '\\''
'\\"' 큰 따옴표 '\\\"'
'\\' 백슬래시 92

🧠 이스케이프 시퀀스는 “특별한 의미가 있는 문자”를 표현하는 방법이에요.


문자형 연산도 가능할까?

네, 가능합니다!
char 타입은 내부적으로 숫자로 처리되기 때문에 사칙연산도 가능해요!

#include <stdio.h>

int main() {
    char ch = 'A';
    char next = ch + 1;
    printf("다음 문자: %c
", next);
    return 0;
}

결과:

다음 문자: B

🎯 문자 간 차이 계산도 가능: 'b' - 'a'는 1, 'Z' - 'A'는 25


문자 입력 받기

1. scanf 사용

char ch;
scanf("%c", &ch);

2. getchar() 사용

char ch = getchar();

📌 주의: 문자 입력 시 Enter도 입력으로 간주되기 때문에 처리를 잘 해야 해요.


문자 출력하기

char ch = 'K';
printf("문자 출력: %c
", ch);      // 문자 그대로 출력
printf("정수 출력: %d
", ch);      // 아스키 코드 출력

문자열과의 차이

구분 자료형 예시 크기
문자 char 'A' 1바이트
문자열 char[] "ABC" 4바이트 (A + B + C + \0)

🎯 문자열은 null 문자 \0로 끝나는 문자 배열이에요.
이는 다음 시간에 자세히 배울게요!


실전 예제: 알파벳 소문자를 대문자로 바꾸기

#include <stdio.h>

int main() {
    char lower = 'g';
    char upper = lower - 32;  // ASCII 코드 차이 이용

    printf("소문자: %c → 대문자: %c
", lower, upper);
    return 0;
}

출력 결과:

소문자: g → 대문자: G

아스키코드에서 'a'는 97, 'A'는 65니까
항상 소문자 – 32 = 대문자라는 규칙을 활용할 수 있어요!


✅ 요점 정리: 문자형 한눈에 보기

항목 설명
타입 char (1 byte)
저장 내용 아스키 코드값 (정수)
출력 방식 %c (문자), %d (정수)
입력 방식 scanf("%c", &ch) 또는 getchar()
계산 가능 여부 가능! 내부적으로 정수이기 때문

⚠️ 문자형 사용 시 주의할 점

주의사항 설명
작은 따옴표 사용 'A'처럼 문자 하나는 반드시 ' 사용 (큰따옴표 " "는 문자열)
null 문자 구분 문자열 끝에는 자동으로 '\0'이 들어가므로 문자와 문자열은 다름
입력 버퍼 주의 scanf 후 남는 `
` 때문에 다음 입력에 영향을 줄 수 있어요
정수로 출력할 때는 %d 사용 %c로 출력하면 문자로, %d로 출력하면 아스키값

마무리하며 💬

오늘은 문자형(char) 데이터 타입에 대해 속속들이 알아보았어요!
작고 단순해 보이지만, 문자형은 문자열 처리, 파일 입출력, 암호화, 아스키 연산 등에서
정말 자주 사용되는 기초 중의 핵심입니다.

다음 시간에는 이 문자들이 모여서 만들어지는 **문자열(String)**에 대해 알아볼게요!
그럼 오늘도 수고 많으셨고, 재미있는 C 언어 여행은 계속됩니다 😊
감사합니다!

답글 남기기