2012-04-02 2 views
1

나는 C에서 사용자의 입력을 검사하는 가장 효율적인 방법을 물어보고 싶습니다. 사용자가 4 자리 정수를 입력하기를 원합니다. 사용자가 정확히 4 자리 숫자로 문자를 입력했는지 어떻게 확인할 수 있습니까?C에서 정수 입력 체크

+1

(int i = 0; i <4; ++ i) if (! isdigit (in)) panic(); if ([4]에서) panic(); ;-) –

+0

정수에서 999을 뺀 것으로 생각합니다. 사용자가 입력에 문자를 추가하면 C가 무시되고 3 자리 정수가 저장되기 때문입니다. 출력이 양수인지 음수인지 확인합니다. – Dimitris

+0

사용자로부터 입력을 문자열로 가져옵니다. 문자열을 반복하고 각 문자가 ''의 'isdigit'을 사용하여 정수인지 확인하십시오. –

답변

1

한 가지 방법 : 각 문자를 확인) string 또는

2 char*과 같이

1) 49-58 ASCII 내에이 같은처럼 뭔가를 할 수있는 숫자를 확인 위해

범위.

마지막으로,이 문자열에 네 개의 문자가와 long로 문자열을 변환하기 (2)

+3

'문자열'은'c'입니까? –

+0

음, C에는 string.h가 있습니다. 그것은 문자열이 C에 있음을 의미합니까? :-) –

+0

아니, 그렇다고해서 그런 뜻이 아닙니다. –

0

모든 입력은 문자열 (콘솔)로 간주됩니다. 당신이 할 수있는 일은 lengh가 4보다 작은 지 점검하고, 그렇다면 루프를 통과하고 각 문자에 대해 isdigit()을 사용하여 숫자인지 확인합니다.

int isnumeric(char *str) 
{ 
    while(*str) 
    { 
     if(!isdigit(*str)) 
      return 0; 
      str++; 
    } 
    return 1; 
} 
0

사용 strtol 기능을 만족하는 경우 atoi() (긴 경우 또는 푸티 Atol을())를 사용하여 int로 변환합니다. strtol은 오류 확인을 통해 실제로 long을 확인할 수 있습니다. 그런 다음 숫자가 10009999 (양의 4 자리 10 진수 정수인 경우) 사이인지 확인하십시오.