isalpha

isalpha

한 문자가 알파벳(대문자 또는 소문자)인지 확인할 때 써요. <ctype.h>의 문자 분류 함수 중 하나예요.

출처: cppreference

본문

문법 (Syntax)

int isalpha ( int ch );

설명 (Explanation)

주어진 문자가 알파벳 문자인지 확인해요. 즉 대문자(ABCDEFGHIJKLMNOPQRSTUVWXYZ)이거나 소문자(abcdefghijklmnopqrstuvwxyz)인지 봐요.

"C"가 아닌 로케일에서는, isupper()islower()true를 반환하는 문자, 또는 그 로케일이 알파벳으로 간주하는 다른 문자를 알파벳으로 봐요. 어떤 경우든 이 문자에 대해 iscntrl(), isdigit(), ispunct(), isspace()false를 반환해요.

ch의 값이 unsigned char로 표현할 수 없고 EOF와도 같지 않으면 동작이 정의되지 않아요.

매개변수 (Parameters)

  • ch — 분류할 문자

반환값 (Return value)

문자가 알파벳이면 0이 아닌 값, 아니면 0을 반환해요.

예시 (Example)

로케일에 따라 ß의 분류가 달라지는 걸 보여줘요. 기본 C 로케일에서는 알파벳이 아니지만, ISO-8859-1 로케일에서는 알파벳으로 분류돼요.

#include <ctype.h>
#include <locale.h>
#include <stdio.h>

int main(void)
{
    unsigned char c = '\xdf'; // German letter ß in ISO-8859-1
 
    printf("isalpha('\\xdf') in default C locale returned %d\n", !!isalpha(c));
 
    setlocale(LC_CTYPE, "de_DE.iso88591");
    printf("isalpha('\\xdf') in ISO-8859-1 locale returned %d\n", !!isalpha(c));
}

가능한 출력 (Possible output):

isalpha('\xdf') in default C locale returned 0
isalpha('\xdf') in ISO-8859-1 locale returned 1

참고 문헌 (References)

  • C23 표준 (ISO/IEC 9899:2024): 7.4.1.2 The isalpha function (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018): 7.4.1.2 The isalpha function (p: 145)
  • C11 표준 (ISO/IEC 9899:2011): 7.4.1.2 The isalpha function (p: 200-201)
  • C99 표준 (ISO/IEC 9899:1999): 7.4.1.2 The isalpha function (p: 181-182)
  • C89/C90 표준 (ISO/IEC 9899:1990): 4.3.1.2 The isalpha function

더 알아보기

  • 와이드 문자 버전인 iswalpha(C95)도 있어요.
  • 숫자까지 포함해 판별하고 싶다면 isalnum을 보세요.
  • cppreference 원문에서 isalpha의 자세한 내용을 확인할 수 있어요.