문자 분석 및 변환 함수란?
C 언어에서는 ctype.h 헤더 파일에 미리 정의된 함수들을 사용하여 입력받은 문자가 알파벳인지, 숫자인지, 공백이나 특수 기호인지 판별하거나, 영문자의 대소문자를 서로 변환할 수 있습니다. 이러한 함수들은 사용자 입력 검증이나 문자열 처리 등 실무 개발에서 매우 자주 활용되므로 반드시 익혀두는 것이 좋습니다.
1. 문자 분석 함수
분석 함수는 전달된 문자가 특정 조건에 해당하는지 검사하여, 조건을 만족하면 참(0이 아닌 값)을, 그렇지 않으면 0을 반환합니다.
| 번호 | 함수 | 설명 |
|---|---|---|
| 1 | isalpha() | 알파벳 문자인지 검사 |
| 2 | isdigit() | 숫자(0~9)인지 검사 |
| 3 | isspace() | 공백, 탭, 줄바꿈 문자인지 검사 |
| 4 | ispunct() | 특수 기호(구두점)인지 검사 |
| 5 | islower() | 영문 소문자인지 검사 |
| 6 | isupper() | 영문 대문자인지 검사 |
| 7 | isalnum() | 알파벳 또는 숫자인지 검사 |
2. 문자 변환 함수
변환 함수는 영문자의 대소문자를 상호 변환하는 데 사용됩니다. 단, 이 함수들은 원본 문자 값을 직접 변경하는 것이 아니라 변환된 값을 새로 반환한다는 점에 유의해야 합니다.
| 함수 | 설명 |
|---|---|
| tolower() | 대문자를 소문자로 변환 |
| toupper() | 소문자를 대문자로 변환 |
예제 코드
다음은 문자 분석 함수 isalpha()를 사용하여 입력된 문자가 알파벳인지 판별하는 간단한 C 프로그램입니다.
#include <stdio.h>
#include <ctype.h>
void main(){
// 컴파일 시점에 문자 변수 초기화 //
char variable = 'A';
// 문자 분석 함수를 사용하여 결과 출력 //
if (isalpha(variable)){
printf("입력된 문자 : %c 는 알파벳입니다", variable);
} else {
printf("입력된 문자는 알파벳이 아닙니다");
}
}실행 결과
입력된 문자 : A 는 알파벳입니다
코드 해설: 변수 variable에는 문자 'A'가 저장되어 있으며, isalpha() 함수는 이 값이 알파벳임을 확인하고 참을 반환합니다. 따라서 if 문의 첫 번째 블록이 실행되어 위와 같은 결과가 화면에 출력됩니다. 만약 변수에 숫자나 특수 문자가 저장되어 있었다면 else 블록이 실행되었을 것입니다. 이처럼 ctype.h의 함수들을 활용하면 복잡한 조건문 없이도 손쉽게 문자의 종류를 판별할 수 있습니다.