본문 바로가기

코딩/42경산

c언어로 isalpha, isdigit, isalnum, isascii, isprint 함수 구현하는 방법

반응형

is 시리즈 함수는 매개변수로 받은 int 자료형 데이터가 ascii 코드 상에서 어떤 의미를 가지는 데이터인지 판별하는 함수다.

그래서 ascii 코드표를 잘 참고하면 어렵지 않게 함수를 정의할 수 있다.


1. isalpha 구현

개요

isalpha 함수는 매개변수로 받은 int 자료형 데이터가 알파벳인지 확인하는 함수다.

함수는 대문자 알파벳이거나 소문자 알파벳일 경우 1을 반환하고, 그 외에는 0을 반환한다.

구현

매개변수로 받은 데이터가 알파벳인지 확인할 때에는 ascii코드를 체크하는 방법이 가장 쉽다.

터미널에서 아래 명령어를 입력하면 ascii 코드표를 확인할 수 있다.

man ascii

위 표를 보면 10진수 아스키 코드가 65일때 대문자 알파벳 A와 대응된다.

우리가 함수에서 매개변수로 받는 값도 int 자료형 즉, 정수값이기 때문에 매개변수로 받은 값이 정수 65라면 대문자 알파벳 A라는 사실을 알 수 있다.

if (c >= 65)

이렇게 조건문을 이용해 ascii 코드값을 체크하여 대문자 혹은 소문자 알파벳이 매개변수로 들어왔는지 확인할 수 있다.


2. isdigit 구현

개요

isdigit 함수는 말그대로 digit인지 확인하는 함수.

digit은 0 ~ 9 범위의 숫자를 의미하는데 역시 ascii 코드로 표현 가능.

구현

역시 조건문을 활용하여 0 ~ 9 범위의 아스키코드를 갖는 값인지 확인할 수 있다.


3. isalnum

개요

isalnum 함수는 알파벳과 숫자인지 확인하는 함수.

isdigit과 isalpha를 합치면 된다.


4. isascii

개요

isascii는 매개변수로 받은 int 자료형 데이터가 ascii코드 범위안에 있는 값인지 확인하는 함수.


5. isprint

개요

매개변수로 받은 데이터가 출력 가능한 문자인지 확인하는 함수.

"출력 불가능한 문자"란 ascii 코드 상에서 제어문자와 space를 제외한 공백문자를 의미한다.

즉, 출력가능한 문자는 ascii코드 상에서 32 ~ 126범위에 속한 값을 의미.

 

반응형