C++ 숫자 판단 isdigit 사용 방법

C++에서 값이 숫자인지 아닌지 판단하는 방법에 대해 알아보겠습니다.

값이 숫자인지 확인해주는 함수로 isdigit 가 있습니다.

isdigit 작성 방법을 보겠습니다.

isdigit(값)

 

isdigit 함수 반환 값은 입력한 값이 숫자이면 0 이외의 값숫자가 아니면 0이 반환을 합니다.

예를 들어 isdigit 함수에 a을 설정하면 0이 반환되고,

1을 설정하면 0 이외의 값을 반환합니다.

 

샘플 소스를 보겠습니다.

#include<iostream> 
#include<cctype> 


int main(){ 
 
    printf("1 : %d\n", isdigit('1'));
    printf("2 : %d\n", isdigit('2'));
    printf("a : %d\n", isdigit('a'));
    printf("b : %d\n", isdigit('b'));

    
}

 

결과

1 : 1
2 : 1
a : 0
b : 0

값이 숫자인 경우에는 0 이외의 값이, 숫자가 아닌 경우에는 0을 반환했습니다.

문자열에 숫자가 아닌 값이 포함되어 있는지 확인하는 샘플을 보겠습니다.

#include<iostream> 
#include<cctype> 

int main(){ 
    
    char arr[11] = "1234a567d9";
    
    for (int i = 0; i < 11; ++i) {
        printf("arr[%d]\t char: %c\tisdigit: %d\n", i, arr[i], isdigit(arr[i]));
    }

    return 0;
}

 

결과

arr[0]	 char: 1	isdigit: 1
arr[1]	 char: 2	isdigit: 1
arr[2]	 char: 3	isdigit: 1
arr[3]	 char: 4	isdigit: 1
arr[4]	 char: a	isdigit: 0
arr[5]	 char: 5	isdigit: 1
arr[6]	 char: 6	isdigit: 1
arr[7]	 char: 7	isdigit: 1
arr[8]	 char: d	isdigit: 0
arr[9]	 char: 9	isdigit: 1
arr[10]	 char: 	isdigit: 0

 

반복문을 사용해 문자를 하나씩 isdigit 함수에 대입해 숫자인지 아닌지 판단하고 있습니다.

숫자인 경우에는 1, 숫자가 아닌 경우에는 0을 반환합니다.

댓글