<개인공부>/[C언어, C++]

[C언어/C++] isalpha 함수 (알파벳을 확인하는 함수)

BlockDMask 2020. 12. 3. 00:30
반응형

안녕하세요. BlockDMask 입니다.
오늘은 C언어 C++에서 알파벳인지 확인할 수 있는 isalpha 함수에 대해 알아보려합니다.
예전에 문자가 숫자인지 확인해주는 isdigit() 함수를 소개해드린적이 있는데요. 그 함수와 비슷하게 isalpha()함수는 "이 문자가 알파벳인가?"를 확인해주는 함수라 생각하시면 됩니다.

그럼 시작해보겠습니다.

<목차>
1. isalpha 함수 원형과 사용법
2. isalpha 함수 예제



1. C/C++ isalpha 함수 설명


헤더파일
C언어 <ctype.h>
C++ <cctype>


함수원형

int isalpha (int c);

매개변수 : C언어에서 아스키 코드에 해당하는 문자들은 숫자로 표현이 되고, 문자를 넣으면 자동으로 아스키 코드에 있는 숫자로 들어가기 때문에 int 타입이긴 하지만 'a', 'A', '1' 등을 집어 넣어도됩니다.
즉, 'a' 와 같이 char 타입으로 집어 넣어도 자동으로 int 타입으로 형변환 되어서 들어가게 됩니다. 아스키 코드 표를 참고하면 'a'는 자동으로 숫자 97로 형변환되어 들어가게 됩니다.

반환형 : 매개변수로 들어온 인자가 알파벳이라면 0이 아닌 수를 반환하고 알파벳이 아니라면 0을 반환합니다.

더 정확하게 이야기하면 isalpha 함수는
알파벳 대문자 "A-Z"는 1을 반환.
알파벳 소문자 'a-z"는 2를 반환.
알파벳이 아닌것은 0을 반환합니다.

한번더 이야기 하면 isalpha 함수의 매개변수로
아스키 코드표에 'A-Z'에 해당하는 65번~90번의 값이 들어오면 1을 반환
아스키 코드표에 'a-z'에 해당하는 97번~122번의 값이 들어오면 2를 반환
이외의 값이 들어오면 0을 반환하는 함수 입니다.


2. C/C++ isalpha 함수 예제


2-1) 문자열 내부 하나하나 isalpha 함수로 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<ctype.h>
#include<stdio.h>
 
int main(void)
{
    char str[] = "BlockDMask1234";
    
    for (int i = 0; i < (int)strlen(str); ++i)
    {
        printf("isalpha(\'%c\') : %d\n", str[i], isalpha(str[i]));
    }
 
}
 
cs

문자열 "BlockDMask1234"를 isalpha 함수를 이용해서 하나하나 검사를 해보았습니다.
검사 결과
대문자 구간(A~Z)는 1로 나오고
소문자 구간(a~z)까지는 2로 나오고
알파벳 대소문자가 아닌 것들은 0으로 나오는것을 확인할 수 있습니다.


2-2) isalpha 함수 아스키 코드표에 있는 숫자로 테스트 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<ctype.h>
#include<stdio.h>
 
int main(void)
{
    // 대문자 A
    printf("[ %c ] isalpha(%d) : %d\n"6565, isalpha(65));
 
    // 대문자 B
    printf("[ %c ] isalpha(%d) : %d\n"6666, isalpha(66));
 
    // 소문자 d
    printf("[ %c ] isalpha(%d) : %d\n"100100, isalpha(100));
 
    // 소문자 z
    printf("[ %c ] isalpha(%d) : %d\n"122122, isalpha(122));
 
    // 숫자 0
    printf("[ %c ] isalpha(%d) : %d\n"4848, isalpha(48));
 
    // 숫자 9
    printf("[ %c ] isalpha(%d) : %d\n"5757, isalpha(57));
 
}
 
cs

아스키 코드표에 10진수에 해당하는 숫자를 한번 isalpha() 함수에 넣어보았습니다.
65번은 "A"를 뜻하고, 100번은 'd'를 말합니다. 결과값에서 보셨듯 숫자가 들어가도 아스키 코드표 기반으로 판단을 하기 때문에 대문자로 소문자로 인식하는 것을 볼 수 있습니다.


오늘 C언어 C++에서 알파벳을 확인하는 함수 isalpha 에 대해서 알아보았습니다. 
제 글을 읽어주셔서 감사합니다.

반응형