C 언어에서는 ctype.h 헤더 파일에 미리 정의된 다양한 함수들을 통해 입력받은 문자를 분석하고 변환할 수 있습니다. 이러한 함수들을 활용하면 사용자가 입력한 문자가 알파벳인지, 숫자인지, 특수 기호인지 등을 손쉽게 판별할 수 있습니다.
1. 문자 분석 함수
ctype.h 라이브러리에서 제공하는 주요 문자 분석 함수는 다음과 같습니다.
| 함수 | 검사 내용 |
|---|---|
| isalpha() | 알파벳인지 여부 |
| isdigit() | 숫자(0~9)인지 여부 |
| isspace() | 공백, 줄바꿈(\n) 또는 탭인지 여부 |
| ispunct() | 특수 기호인지 여부 |
| islower() | 소문자 알파벳인지 여부 |
| isupper() | 대문자 알파벳인지 여부 |
| isalnum() | 알파벳 또는 숫자(영숫자)인지 여부 |
2. 문자 변환 함수
대소문자를 서로 변환할 때 사용하는 함수는 다음 두 가지입니다.
| 함수 | 변환 내용 |
|---|---|
| tolower() | 대문자 알파벳을 소문자로 변환 |
| toupper() | 소문자 알파벳을 대문자로 변환 |
3. 예제 프로그램
다음은 위에서 소개한 문자 분석 함수를 활용해 입력된 문자의 유형을 검사하는 C 프로그램입니다.
#include <stdio.h>
#include <ctype.h>
int main() {
char character;
printf("숫자 또는 알파벳 키를 하나 누르세요\n");
character = getchar(); // 키보드로부터 한 글자 입력받기
if (isalpha(character) > 0)
printf("입력한 문자는 알파벳입니다.");
else if (isdigit(character) > 0)
printf("입력한 문자는 숫자입니다.");
else
printf("입력한 문자는 영숫자가 아닙니다.");
return 0;
}프로그램 동작 원리
getchar() 함수가 키보드로부터 한 글자를 입력받으면, 먼저 isalpha()로 알파벳 여부를 확인하고, 알파벳이 아니라면 isdigit()으로 숫자인지 검사합니다. 둘 다 해당하지 않으면 영숫자가 아닌 문자로 판단하여 결과를 출력합니다.
4. 실행 결과
위 프로그램을 실행하면 입력 값에 따라 다음과 같은 결과가 출력됩니다.
실행 예시 1: 숫자 또는 알파벳 키를 하나 누르세요 3 입력한 문자는 숫자입니다. 실행 예시 2: 숫자 또는 알파벳 키를 하나 누르세요 G 입력한 문자는 알파벳입니다. 실행 예시 3: 숫자 또는 알파벳 키를 하나 누르세요 & 입력한 문자는 영숫자가 아닙니다.