isdigit
isdigit
한 문자가 숫자(0~9)인지 확인할 때 써요. <ctype.h>의 문자 분류 함수 중 하나예요.
출처: cppreference
본문
문법 (Syntax)
int isdigit ( int ch );
설명 (Explanation)
주어진 문자가 숫자 문자(0123456789)인지 확인해요.
ch의 값이 unsigned char로 표현할 수 없고 EOF와도 같지 않으면 동작이 정의되지 않아요.
매개변수 (Parameters)
- ch — 분류할 문자
반환값 (Return value)
문자가 숫자면 0이 아닌 값, 아니면 0을 반환해요.
참고 (Notes)
isdigit과 isxdigit은 표준 좁은 문자 분류 함수 중에서 현재 설치된 C 로케일의 영향을 받지 않는 유일한 함수들이에요. 다만 일부 구현(예: Microsoft의 1252 코드페이지)은 추가적인 단일 바이트 문자를 숫자로 분류할 수도 있어요. 그래서 '로케일 영향이 없다'는 점이 기본 동작이고, 구현에 따른 예외는 있을 수 있다고 보시면 돼요.
예시 (Example)
0부터 UCHAR_MAX까지 전수 조사해서 숫자로 분류되는 문자를 나란히 찍어요. 결과가 정확히 0~9만 나와요.
#include <ctype.h>
#include <limits.h>
#include <stdio.h>
int main(void)
{
for (int ndx = 0; ndx <= UCHAR_MAX; ++ndx)
if (isdigit(ndx))
printf("%c", ndx);
printf("\n");
}
가능한 출력 (Possible output):
0123456789
참고 문헌 (References)
- C23 표준 (ISO/IEC 9899:2024): 7.4.1.5 The isdigit function (p: TBD)
- C17 표준 (ISO/IEC 9899:2018): 7.4.1.5 The isdigit function (p: 146)
- C11 표준 (ISO/IEC 9899:2011): 7.4.1.5 The isdigit function (p: 201)
- C99 표준 (ISO/IEC 9899:1999): 7.4.1.5 The isdigit function (p: 182)
- C89/C90 표준 (ISO/IEC 9899:1990): 4.3.1.4 The isdigit function
더 알아보기
- 와이드 문자 버전인 iswdigit(C95)도 있어요.
- 16진수 숫자(
09,af,A~F)까지 확인하려면 isxdigit을 보세요. - cppreference 원문에서
isdigit의 자세한 내용을 확인할 수 있어요.