문자를 처리하기 위해서는 먼저 입력받은 값이 어떤 문자에 속하는지를 알아야 하는데, 이 부분을 아래와 같이 직접 구현할 수도 있지만, 문자 판별용 함수가 존재한다. 아래의 예시는 입력된 문자가 영문자인지 판별해서 영문자 개수를 세어 주는 예시를 만들었다.
표준 라이브러리에서 영문자를 판별하는 isalpha 함수를 제공하고 있으므로 직접 작성한 예시에서 ch에 저장된 문자가 영문자인지를 판별하는 부분이 다음과 같이 바뀔 수 있다.
if(isalpha(ch))
프로그래밍이 엄청 쉬워졌다. 이래서 표준 라이브러리 함수들을 찾아서 쓰는 것이다.
문자 판별 함수들에 대해서는 목록과 같이 쭉 나와있다.
- 함수이름 | 기능
- isalnum | c에 저장된 문자가 영문자 또는 수치 문자인지 판별한다.
- isalpha | c에 저장된 문자가 영문자인지 판별한다.
- isascii | c에 저장된 문자가 ASCII 문자인지 판별한다.
- isblank | c에 저장된 문자가 빈 공백(공백 문자 혹은 탭)인지 판별한다.
- iscntrl | c에 저장된 문자가 제어 문자인지 판별한다.
- isdigit | c에 저장된 문자가 수치 문자(‘0’ – ‘9’)인지 판별한다.
- isgraph | c에 저장된 문자가 프린트 가능 문자(공백 문자 제외)인지 판별한다.
- islower | c에 저장된 문자가 소문자인지 판별한다.
- isprint | c에 저장된 문자가 프린트 가능 문자(공백 문자 포함)인지 판별한다.
- ispunch | c에 저장된 문자가 구획 문자(공백, 영 수치 문자가 아니면서 출력 가능한 문자)인지 판별한다.
- isspace | c에 저장된 문자가 공백 문자, 종이넘김, 탭, 복귀문자인지 판별한다.
- isupper | c에 저장된 문자가 대문자인지 판별한다.
- isxdigit | c에 저장된 문자가 16진수 수치 문자인지 판별한다.
여기 적은 함수들의 사용법은 같다. (자세한 형식은 직접 구글에 검색해보면 나온다.) 이 중에 isalpha 함수를 사용해 키보드로 입력받은 문자가 영문자인지를 판별해서 영문자만 별도로 출력하는 예시를 작성해보았다.
“70 – 문자열 판별 함수”의 한가지 생각