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 언어 여행은 계속됩니다 😊
감사합니다!