Contents

[C++]대소문자, 숫자 구분함수

Contents

숫자판단, 문자판단, 대소문자 판단 ( isalpha, isupper, islower, isdigit, toupper, tolower )

isalpha - 알파벳 문자 판별

1
int isalpha(int c);

c가 알파벳 문자인지 아닌지 판별해준다. int형인 이유는 아스키코드를 판별하기 떄문!!

단, 사용 할 때 알파벳을 직접 넣어줘도 된다.

1
2
3
int isalpha(97);

int isalpha('a');

밑에 ‘a’ 가 아스키코드로 97이므로 결국 두 문장은 같은 문장이다.

return은 타입이 int형 이기에 알파벳이 아니라면 0알파벳이라면 0이아닌 정수를 리턴한다.

  • 비쥬얼 스튜디오 기준

    ​ 알파벳이 아닐경우 - 0

    ​ 대문자일 경우 - 1

    ​ 소문자일 경우 - 2

isupper - 대문자 판별

1
int isupper(int c);

c가 대문자인지 아닌지 판별해준다.

대문자가 아니라면 0을 (알파벳이 아닌 다른 어떤 문자여도 대문자가 아니기 때문에 0을 리턴한다.)

대문자라면 0이아닌 정수를 리턴한다.

islower - 소문자 판별

1
int islower(int c);

c가 소문자인지 아닌지를 판별해준다.

isdigit - 숫자 판별

1
 int isdigit(int c);

c가 숫자인지 아닌지를 판별해준다.

단, 주의할 점이 있다.

1
isdigit(5);

이것은 숫자일까? 아닐까?

답은 0을 리턴한다. 왜그럴까?

isdigit또한 위에 함수들처럼 아스키코드값을 확인하기 때문이다.

즉 ‘0’ ~ ‘9’ (아스키 코드로 : 48 ~ 57) 에 해당하는지를 확인한다.

1
2
3
isdigit('5');

isdigit(53);

이와 같이 사용하도록 하자.

toupper - 소문자를 대문자로

1
int toupper(int c);

c가 소문자라면 대문자로 바꾸어서 리턴해준다.

소문자가 아니라면 원래상태 그대로 리턴해준다.

tolower - 대문자를 소문자로

1
int tolower(int c);

c가 대문자라면 소문자로 바꾸어서 리턴해준다.

기타

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
isalnum();		// 알파벳 또는 숫자인가? (a ~ z, A ~ Z, 0 ~ 9)

isxdigit();		// 16진수 숫자인가? (0 ~ 9, A ~ F, a ~ f)

isspace();		// 공백 문자인가? (' ', '\n', '\t', '\v', '\r')

ispunct();		// 구두점 문자인가?

isprint();		// 출력가능한 문자인가?

iscntrl();		// 제어문자인가?

isascii();		// 아스키코드인가?

toascii();		// 아스키코드로 변환