programing

char가 숫자인지 문자인지를 확인합니다.

yoursource 2022. 12. 31. 20:35
반응형

char가 숫자인지 문자인지를 확인합니다.

어떻게 하면,char예를 들어 C로a또는9숫자야 문자야?

다음 중 어느 쪽을 사용하는 것이 좋습니까?

int a = Asc(theChar);

아니면 이거?

int a = (int)theChar

사용하실 수 있습니다.isalpha()그리고.isdigit()표준 기능<ctype.h>.

char c = 'a'; // or whatever

if (isalpha(c)) {
    puts("it's a letter");
} else if (isdigit(c)) {
    puts("it's a digit");
} else {
    puts("something else?");
}

문자는 정수이기 때문에 실제로 문자와 리터럴을 직접 비교할 수 있습니다.

if( c >= '0' && c <= '9' ){

이것은 모든 문자에 적용됩니다.ASCII 표를 참조해 주세요.

ctype.h 에는, 이것을 실현하기 위한 기능도 준비되어 있습니다.

일반적으로 간단한 조건을 사용하여 ASCII 문자 또는 숫자를 확인할 수 있습니다.

if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
    /*This is an alphabet*/
}

사용할 수 있는 숫자의 경우

if (ch >= '0' && ch <= '9')
{
    /*It is a digit*/
}

다만, C 의 문자는 내부적으로 ASCII 으로 취급되기 때문에, ASCII 값을 사용해 같은 것을 확인할 수도 있습니다.

문자가 숫자인지 문자인지 확인하는 방법

이것들 중 어느 것도 도움이 되지 않는다.사용하다isalpha()또는isdigit()참조할 수 있습니다.들어갔어요<ctype.h>.

<ctype.h>에는, 의 유무를 판단하기 위한 일련의 기능이 포함되어 있습니다.char다음과 같은 문자 또는 숫자를 나타냅니다.isalpha,isdigit그리고.isalnum.

이유int a = (int)theChar하고 싶은 대로 하지 않는 것은a는 특정 문자를 나타내는 정수 값을 유지합니다.예를 들어, 의 ASCII 번호입니다.'9'57, 그리고'a'97입니다.

ASC용도II:

  • 숫자 -if (theChar >= '0' && theChar <= '9')
  • 알파벳 -
    if (theChar >= 'A' && theChar <= 'Z' || theChar >= 'a' && theChar <= 'z')

ASCII 표를 직접 확인해 보십시오.

의 C99 표준c >= '0' && c <= '9'

c >= '0' && c <= '9'(다른 답변에서 언급)는 C99 N1256 표준 초안 5.2.1 "문자 집합"에 다음과 같이 기재되어 있기 때문에 기능합니다.

소스 문자 집합과 실행 기본 문자 집합 모두에서 위의 십진수 목록에서 0 뒤의 각 문자 값은 앞의 값보다 1 더 커야 합니다.

단, ASCII는 보증되지 않습니다.

한다면(theChar >= '0' && theChar <='9')숫자입니다.무슨 말인지 아시겠죠?

언급URL : https://stackoverflow.com/questions/8611815/determine-if-char-is-a-num-or-letter

반응형