85.8 문자 종류 판별하기
프로그래밍을 하다 보면 현재 문자가 영문 알파벳인지 숫자인지 판별해야 할 경우가 자주 있습니다. 이때는 일일이 ASCII 코드 범위로 확인하지 않고 다음과 같은 방법으로 손쉽게 판별할 수 있습니다.
char_is.c
#include <stdio.h> #include <ctype.h> int main() { if (isspace('\t')) // 스페이스, \f, \n, \r, \t, \v인지 검사 printf("공백입니다.\n"); if (isblank(' ')) // 스페이스, 탭 문자(\t)인지 검사 printf("공백입니다.\n"); if (isalpha('a')) // 영문 알파벳인지 검사 printf("알파벳입니다.\n"); if (isupper('A')) // 대문자인지 검사 printf("대문자입니다.\n"); if (islower('a')) // 소문자인지 검사 printf("소문자입니다.\n"); if (isascii('~')) // 7비트 ASCII 문자인지 검사 printf("ASCII 문자입니다.\n"); if (isdigit('9')) // 숫자인지 검사 printf("숫자입니다.\n"); if (isxdigit('F')) // 16진수 숫자인지 검사(0~9, a~f, A~F) printf("16진수 숫자입니다.\n"); if (isalnum('a') && isalnum('1')) // 영문 알파벳과 숫자인지 검사 printf("영문 알파벳과 숫자입니다.\n"); if (iscntrl('\n')) // 제어문자인지 검사 printf("제어문자입니다.\n"); if (isgraph('a')) // 화면에 출력할 수 있는지 검사(스페이스 제외) printf("화면에 출력할 수 있습니다.\n"); if (isprint(' ')) // 화면에 출력할 수 있는지 검사(스페이스 포함) printf("화면에 출력할 수 있습니다.\n"); if (ispunct('-')) // 영문 알파벳, 숫자, 스페이스가 아닌 문자 중에서 // 화면에 출력할 수 있는지 검사 printf("화면에 출력할 수 있습니다.\n"); return 0; }
isalpha(97)과 같이 문자 대신 ASCII 코드를 바로 넣어도 됩니다.