C 표준 라이브러리 ctype.h
개요 및 문자 판별 함수
C 언어에서 문자를 다룰 때 유용한 라이브러리 중 하나가 ctype.h
입니다. 이 헤더 파일은 다양한 문자 판별 및 변환 함수를 제공하며, 특히 특정 문자가 숫자인지, 알파벳인지, 공백인지 등을 쉽게 판별할 수 있도록 돕습니다.
이번 포스팅에서는 ctype.h
의 개요와 함께 문자 판별 함수(isdigit
, isalpha
, isspace
, islower
, isupper
)를 설명하고, 코드 예제를 통해 활용 방법을 살펴보겠습니다.
1. ctype.h
개요
ctype.h
는 C 표준 라이브러리의 일부로, 문자 관련 판별 및 변환을 수행하는 여러 함수를 제공합니다. 주로 char
또는 int
값으로 표현된 문자 데이터를 검사하는데 사용됩니다.
이 라이브러리의 주요 함수들은 int
형으로 문자를 입력받고, 해당 문자가 특정 조건을 만족하는지 여부를 정수 값(참: 0이 아님, 거짓: 0)으로 반환합니다.
2. 문자 판별 함수
2.1 isdigit(int c)
- 숫자 여부 확인
isdigit
함수는 주어진 문자가 0~9 사이의 숫자인지를 판별합니다.
#include <stdio.h>
#include <ctype.h>
int main() {
char c = '5';
if (isdigit(c)) {
printf("%c는 숫자입니다.\n", c);
} else {
printf("%c는 숫자가 아닙니다.\n", c);
}
return 0;
}
실행 결과:
5는 숫자입니다.
2.2 isalpha(int c)
- 알파벳 여부 확인
isalpha
함수는 주어진 문자가 알파벳(A-Z, a-z)인지 확인합니다.
#include <stdio.h>
#include <ctype.h>
int main() {
char c = 'A';
if (isalpha(c)) {
printf("%c는 알파벳입니다.\n", c);
} else {
printf("%c는 알파벳이 아닙니다.\n", c);
}
return 0;
}
실행 결과:
A는 알파벳입니다.
2.3 isspace(int c)
- 공백 문자 여부 확인
isspace
함수는 공백(space), 탭(tab), 개행(newline) 등의 공백 문자인지를 판별합니다.
#include <stdio.h>
#include <ctype.h>
int main() {
char c = '\t';
if (isspace(c)) {
printf("공백 문자입니다.\n");
} else {
printf("공백 문자가 아닙니다.\n");
}
return 0;
}
실행 결과:
공백 문자입니다.
2.4 islower(int c)
- 소문자 여부 확인
islower
함수는 주어진 문자가 소문자(a-z)인지 확인합니다.
#include <stdio.h>
#include <ctype.h>
int main() {
char c = 'g';
if (islower(c)) {
printf("%c는 소문자입니다.\n", c);
} else {
printf("%c는 소문자가 아닙니다.\n", c);
}
return 0;
}
실행 결과:
g는 소문자입니다.
2.5 isupper(int c)
- 대문자 여부 확인
isupper
함수는 주어진 문자가 대문자(A-Z)인지 확인합니다.
#include <stdio.h>
#include <ctype.h>
int main() {
char c = 'M';
if (isupper(c)) {
printf("%c는 대문자입니다.\n", c);
} else {
printf("%c는 대문자가 아닙니다.\n", c);
}
return 0;
}
실행 결과:
M는 대문자입니다.
3. 문자 판별 함수 활용 예제
다음은 ctype.h
의 여러 판별 함수를 사용하여 문자열을 분석하는 예제입니다.
#include <stdio.h>
#include <ctype.h>
int main() {
char str[] = "Hello 123!\n";
int i = 0;
while (str[i] != '\0') {
char c = str[i];
if (isdigit(c)) {
printf("%c: 숫자\n", c);
} else if (isalpha(c)) {
printf("%c: 알파벳\n", c);
} else if (isspace(c)) {
printf("공백 문자\n");
} else {
printf("%c: 특수문자\n", c);
}
i++;
}
return 0;
}
실행 결과:
H: 알파벳
e: 알파벳
l: 알파벳
l: 알파벳
o: 알파벳
공백 문자
1: 숫자
2: 숫자
3: 숫자
!: 특수문자
4. 마무리
ctype.h
의 문자 판별 함수들은 입력값이 숫자인지, 알파벳인지, 공백인지 등을 쉽게 확인할 수 있도록 도와줍니다. 이를 활용하면 입력값을 분석하거나, 특정 조건에 맞는 문자만 필터링하는 등의 다양한 작업을 수행할 수 있습니다.
이번 포스팅에서는 isdigit
, isalpha
, isspace
, islower
, isupper
함수에 대해 살펴보았습니다. 실제 프로그래밍에서 문자 처리를 할 때 이 함수들을 적절히 활용하면 보다 효율적인 코드를 작성할 수 있습니다.
'c 언어 > c 표준 라이브러리(Standard C Library)' 카테고리의 다른 글
errno.h 개요 및 에러 처리 (errno, strerror, perror) (0) | 2025.03.03 |
---|---|
C 표준 라이브러리 `ctype.h` 변환 함수 정리 (0) | 2025.03.02 |
C qsort와 bsearch를 활용한 정렬 및 검색 (0) | 2025.02.28 |
C 언어에서 rand와 srand를 활용한 난수 생성 (0) | 2025.02.27 |
C 표준 API 프로그램 종료 및 반환값 (atexit, quick_exit) (0) | 2025.02.26 |