-
[c++] isdigit() 함수Programming/c++ 2022. 5. 28. 16:24728x90
- isdigit 함수 : 매개변수 값이 숫자인지 검사
알파벳인지, 숫자인지 검사할 때 유용한 함수입니다.
1. isdigit 함수 헤더 파일
#include <ctype.h> // c언어 #include <cctype> // c++
2. 함수 원형
int isdigit(int c);
함수의 인자(argument)로는 int형 한개를 넘겨받습니다.
3. return 값(반환 값)
- FALSE : 0
- TRUE : 0이 아닌 값
4. 예제
int main() { string str = "ABCDEFG123456"; // for (auto s : str) { cout << isdigit(s) << endl; } return 0; }
아래와 같은 결과 값이 출력됩니다.
int main() { string str = "ABCDEFG123456"; // for (auto s : str) { if (isdigit(s)) { cout << "숫자입니다~" << endl; } else { cout << "알파벳입니다~" << endl; } } return 0; }
이렇게 if문을 사용하여 검사할 수 있습니다.
여기서 이상한 점!!
isdigit 함수의 인자 값을 int형이 아닌 range based for문의 string의 변수로 받았습니다.
for(auto s : str)
이때! string 을 배열로 접근하게 되어 s는 char형이 됩니다.
for(char s : str)
따라서, 두 형식은 같은 뜻입니다.
for(auto s : str){ if(isdigit(s)){ cout << "숫자입니다~"<< } }
isdigit함수의 인자를 char형으로 받았습니다.
인자는 int형으로 선언되어 있는데,, 왜 그럴까요??
아스키코드(ASCII)를 보면 알 수 있습니다.
s == A 라면 65로 인자를 인식하고,
s == 1 이라면 49로 인자를 인식하게 됩니다.
char 형은 아스키코드 값에 따라 처리됩니다~
- 아스키코드란?
컴퓨터는 0과 1 로 된 2진수로만 인식하기때문에 문자도 숫자로 인식합니다.
문자를 식시키기 위해 여러가지 인코딩 방식이 있는데 그 중에서 아스키코드 방식이 있습니다.
-자주 사용되는 아스키코드
아스키코드 10진수 0~9 48~57 A~Z (대문자) 65~90 a~z (소문자) 97~122 728x90'Programming > c++' 카테고리의 다른 글
[c++] unique 함수 (0) 2022.08.01 [c++] std::accumulate 함수 vector sum (0) 2022.07.16 [c++] Visual Studio Code c++ 설정 (0) 2022.06.26 Jsoncpp 적용하기 (Visual Studio 2017) 방법1 (0) 2021.09.14 Jsoncpp 빌드 (0) 2021.09.13