표준 라이브러리 헤더 <ctype.h>

표준 라이브러리 헤더 <ctype.h>

문자를 다룰 때 "이 문자가 숫자인가요? 대문자인가요? 공백인가요?" 같은 판별을 일일이 비교 연산으로 하다 보면 코드가 금방 지저분해져요. <ctype.h>는 이런 문자 분류와 변환을 한 번에 해결해 주는 헤더예요. 널 종료 바이트 문자열 라이브러리의 일부로, 문자 하나를 받아 그 종류를 검사하거나 대소문자로 바꿔 주는 함수들을 제공하죠.

출처: cppreference

본문

함수

함수 설명
isalnum 문자가 영숫자(alphanumeric)인지 검사
isalpha 문자가 알파벳(alphabetic)인지 검사
islower 문자가 소문자인지 검사
isupper 문자가 대문자인지 검사
isdigit 문자가 숫자(digit)인지 검사
isxdigit 문자가 16진수 문자인지 검사
iscntrl 문자가 제어 문자(control character)인지 검사
isgraph 문자가 그래픽 문자(graphical character)인지 검사
isspace 문자가 공백 문자(space character)인지 검사
isblank (C99) 문자가 빈칸(blank) 문자인지 검사
isprint 문자가 출력 가능한 문자(printing character)인지 검사
ispunct 문자가 구두점(punctuation) 문자인지 검사
tolower 문자를 소문자로 변환
toupper 문자를 대문자로 변환

시그니처(Synopsis)

int isalnum(int c);
int isalpha(int c);
int isblank(int c);
int iscntrl(int c);
int isdigit(int c);
int isgraph(int c);
int islower(int c);
int isprint(int c);
int ispunct(int c);
int isspace(int c);
int isupper(int c);
int isxdigit(int c);
int tolower(int c);
int toupper(int c);

분류 함수들은 모두 int를 받아 int를 돌려줘요. 문자를 int로 받는 이유는 함수에 넣을 값이 unsigned char 값이거나 EOF여야 하기 때문이에요. 반환값이 참이면 0이 아닌 값, 거짓이면 0이에요. 소문자/대문자 변환이 불가능한 문자라면, tolower는 원래 문자 그대로 돌려줘요.

더 알아보기

  • 널 종료 바이트 문자열 라이브러리: <string.h> 기반 문자열 처리 도구 모음.
  • <wctype.h>: 와이드 문자용 분류·변환 함수.