|
숫자가 아닌지 비교하려면 아래와 같이 해야 합니다.
if(pp[i]<0x30 || pp[i]>0x39)
아스키 코드표에서 '0'은 십진수로는 48이고 16진수로는 30입니다.
김학래 님이 쓰신 글 :
: 아스키 코드값을 비교해서 0~9사이의 값이 아니면
:
: 프린트함수를 실행해야하는데 실행이 안되네요 ㅡㅜ
:
: 고수님들 좀 가르쳐주세요......
:
: 제가 작성한 겁니다..... 이게 해결이 되어야지 다음 단계로
:
: 넘어갈수 있거든요 제발 가르쳐주세요........
:
: #include <stdio.h>
: #include <string.h>
:
: main()
: {
: char pp[12],p[40];
: int a=0,i,c=0,z=0;
: back1:;
: printf("숫자를 입력하세요[부호포함12자리이하] : ");
: scanf("%s",pp);
:
: a = strlen(pp);
:
: for(i=a-1;i>=0;i--){
: if(pp[i]<30 && pp[i]>39){
: printf("입력하신 데이터는 숫자가 아닙니다.");
: goto back1;
: }
: }
: }
:
:
|