c 언어/c 표준 라이브러리(Standard C Library)

C 표준 라이브러리 `ctype.h` 개요 및 문자 판별 함수

임베디드 친구 2025. 3. 1. 11:15
728x90
반응형

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 함수에 대해 살펴보았습니다. 실제 프로그래밍에서 문자 처리를 할 때 이 함수들을 적절히 활용하면 보다 효율적인 코드를 작성할 수 있습니다.

반응형