C언어 ctype.h 문자 판별 함수
코딩C언어
읽는데 3분 소요
처음 쓰여진 날: 2026-02-03
마지막 수정일: 2026-02-03
조회수: 12
요약
C언어 ctype.h 헤더의 문자 판별 함수 isupper, islower, isdigit의 사용법을 알아봅니다. 정보처리기사 실기에 출제되는 문자 변환 문제를 풀기 위한 핵심 개념을 정리합니다.
ctype.h 핵심 정리
| 함수 | 설명 | 참인 경우 |
|---|---|---|
isupper(c) | 대문자인지 판별 | 'A' ~ 'Z' |
islower(c) | 소문자인지 판별 | 'a' ~ 'z' |
isdigit(c) | 숫자 문자인지 판별 | '0' ~ '9' |
isalpha(c) | 알파벳인지 판별 | 'A' ~ 'Z', 'a' ~ 'z' |
ctype.h란?
ctype.h는 문자의 종류를 판별하거나 변환하는 함수들을 제공하는 표준 라이브러리입니다.
c
코드 하이라이팅 중...
문자가 대문자인지, 소문자인지, 숫자인지 등을 쉽게 확인할 수 있습니다.
문자 판별 함수
isupper() - 대문자 판별
c
코드 하이라이팅 중...
| 입력 | 결과 | 이유 |
|---|---|---|
'A' | 참 (0 아님) | 대문자 |
'Z' | 참 (0 아님) | 대문자 |
'a' | 거짓 (0) | 소문자 |
'5' | 거짓 (0) | 숫자 |
islower() - 소문자 판별
c
코드 하이라이팅 중...
| 입력 | 결과 | 이유 |
|---|---|---|
'a' | 참 (0 아님) | 소문자 |
'z' | 참 (0 아님) | 소문자 |
'A' | 거짓 (0) | 대문자 |
' ' | 거짓 (0) | 공백 |
isdigit() - 숫자 문자 판별
c
코드 하이라이팅 중...
| 입력 | 결과 | 이유 |
|---|---|---|
'0' | 참 (0 아님) | 숫자 문자 |
'9' | 참 (0 아님) | 숫자 문자 |
'A' | 거짓 (0) | 알파벳 |
' ' | 거짓 (0) | 공백 |
isdigit()은 문자 '0' ~ '9'만 판별합니다
isdigit(5)는 거짓입니다. 숫자 5가 아니라 문자 '5'(ASCII 53)를 넣어야 참입니다.
문자 변환 공식
시험에서는 ctype.h 함수와 함께 문자 변환 공식이 자주 출제됩니다. ASCII 코드에서 배운 문자 연산을 활용합니다.
알파벳 시프트 (시저 암호)
알파벳을 n칸 뒤로 이동시키는 공식입니다.
c
코드 하이라이팅 중...
| 단계 | 설명 | 예시 ('I', 5칸 이동) |
|---|---|---|
c - 'A' | 0 ~ 25 범위로 변환 | 'I' - 'A' = 8 |
+ 5 | n칸 이동 | 8 + 5 = 13 |
% 26 | 26 넘으면 순환 | 13 % 26 = 13 |
+ 'A' | 다시 문자로 변환 | 13 + 'A' = 'N' |
'Z' 이후는 다시 'A'로 돌아갑니다. 이를 순환(Circular) 이라고 합니다.
숫자 시프트
숫자 문자를 n만큼 이동시키는 공식입니다.
c
코드 하이라이팅 중...
| 단계 | 설명 | 예시 ('8', 3 이동) |
|---|---|---|
c - '0' | 0 ~ 9 범위로 변환 | '8' - '0' = 8 |
+ 3 | 3만큼 이동 | 8 + 3 = 11 |
% 10 | 10 넘으면 순환 | 11 % 10 = 1 |
+ '0' | 다시 문자로 변환 | 1 + '0' = '1' |
실전 예제: 문자열 변환
c
코드 하이라이팅 중...
문자별 변환 과정
| 인덱스 | 원본 | 종류 | 계산 | 결과 |
|---|---|---|---|---|
| 0 | 'I' | 대문자 | (8 + 5) % 26 = 13 → 'N' | 'N' |
| 1 | 't' | 소문자 | (19 + 10) % 26 = 3 → 'd' | 'd' |
| 2 | ' ' | 기타 | 그대로 | ' ' |
| 3 | 'i' | 소문자 | (8 + 10) % 26 = 18 → 's' | 's' |
| 4 | 's' | 소문자 | (18 + 10) % 26 = 2 → 'c' | 'c' |
| 5 | ' ' | 기타 | 그대로 | ' ' |
| 6 | '8' | 숫자 | (8 + 3) % 10 = 1 → '1' | '1' |
출력: Nd sc 1
기타 유용한 함수
| 함수 | 설명 |
|---|---|
isalpha(c) | 알파벳(대문자 또는 소문자)인지 판별 |
isalnum(c) | 알파벳 또는 숫자인지 판별 |
isspace(c) | 공백 문자인지 판별 (스페이스, 탭, 개행 등) |
toupper(c) | 소문자를 대문자로 변환 |
tolower(c) | 대문자를 소문자로 변환 |
c
코드 하이라이팅 중...