c언어 문자 처리 라이브러리에 대하여 알아보기
네 안녕하세요, 이번 포스팅에서는 문자 처리 라이브러리에 대하여 알아보도록 하겠습니다.
문자 처리는 사실상 프로그래밍 언어의 모든 처리 과정의 뿌리와도 같습니다.
그래서 프로그래밍 언어들에서 기본 라이브러리 함수로 주는 만큼 매우 중요합니다.
그럼 지금부터 한 번 알아보도록 하겠습니다.
1. 문자 처리 라이브러리
문자 처리 라이브러리는 문자들을 검사하거나,
대문자를 소문자로 바꾸는 등의 작업을 실행할 수 있는 함수들이 주로 들어가 있습니다.
그리고 이러한 함수들은 c언어에서 제공하는 헤더파일들 중에 'ctype.h'라는 헤더파일 내에 들어가 있습니다.
그래서 문자 처리를 위해서는 반드시 위와 같은 헤더파일을 전처리기로 포함을 시켜야만 합니다.
1 - 1. 문자 검사 라이브러리
아래는 문자 검사 라이브러리 함수 관련 표입니다.
함수 | 설명 |
isalpha(c) | c가 영문자인가?(a~z, A~Z) |
isupper(c) | c가 대문자인가?(A~Z) |
islower(c) | c가 소문자인가?(a~z) |
isdigit(c) | c가 숫자인가?(0~9) |
isalnum(c) | c가 영문자 또는 숫자인가?(a~z, A~Z, 0~9) |
isxdigit(c) | c가 16진수인가?(0~9, A~F, a~f) |
isspace(c) | c가 공백 문자인가?('\n', '\t', '\v', '\r') |
ispunct(c) | c가 구두점 문자인가?is |
isprint(c) | c가 출력 가능한 문자인가? |
iscntrl(c) | c가 제어 문자인가? |
isascii(c) | c가 아스키 코드인가? |
이렇게 있습니다.
문자 검사 관련 함수는 보통 'is~'로 시작을 하며,
검사 결과가 참이라면 0이 아닌 값을 반환하고,
결과가 거짓이라면 0으로 반환이 됩니다.
그리고 인수의 경우 int형으로 선언이 되며, 그 결괏값 역시 int형이 됩니다.
1 - 2. 문자 변환 라이브러리
문자에 대한 변환은 제일 대표적인 사례가 대소문자 변환입니다.
대부분의 코드를 영문으로 쓰고, 아스키코드 기반의 문자를 사용하는 대다수의 프로그래밍 언어들이 다 그렇습니다.
그럼 문자 변환 관련 라이브러리 함수들은 어떤 것들이 있는지 표로 정리를 해보도록 하겠습니다.
함수 | 설명 |
toupper(c) | c를 대문자로 변환 |
tolower(c0 | c를 소문자로 변환 |
toascii(c) | c를 아스키 코드로 변환 |
이러한 함수들이 있습니다.
문자 검사 라이브러리 함수는 함수명이 is~로 시작을 했지만,
문자 변환 라이브러리 함수는 함수명이 to~로 시작을 합니다.
그리고 문자 변환 함수들 역시 반환을 int형으로 하기 때문에 선언 역시 int형으로 해야 합니다.
그럼 제가 이들을 바탕으로 간단한 코드를 하나 짜보도록 하겠습니다.
#include <stdio.h>
#include <ctype.h>
int main()
{
int c;
while((c = getchar()) != EOF)
{
if(islower(c))
{
c = toupper(c);
}
putchar(c);
}
return 0;
}
이렇게 한 번 작성을 해봤습니다.
해당 코드는 EOF를 하지 않았다는 조건 하에 입력된 문자들이 소문자일 경우에 출력을 대문자로 변환하는 함수입니다.
그럼 결과를 한 번 보도록 하겠습니다.
abcdef
ABCDEF
^Z
결과가 잘 나온 것을 확인할 수 있습니다.
여기까지 문자 처리 라이브러리에 대하여 알아보았는데요,
다음 포스팅에서는 문자열 처리 라이브러리에 대하여 알아보도록 하겠습니다.
긴 글 읽어주신 독자분들께 진심으로 감사드립니다~
'c언어' 카테고리의 다른 글
c언어 문자열 처리 라이브러리에 대하여 알아보기 2(문자열 비교하기, 문자 및 문자열 검색하기, 문자열 토큰 분리하기) (0) | 2022.12.30 |
---|---|
c언어 문자열 처리 라이브러리에 대하여 알아보기 1(문자열의 길이 구하기, 문자열 복사하기, 문자열 연결하기) (0) | 2022.12.29 |
c언어 문자열 입출력 라이브러리에 대하여 알아보기 (0) | 2022.12.24 |
c언어 문자 입출력 라이브러리에 대하여 알아보기 (0) | 2022.12.22 |
c언어 문자와 문자열에 대하여 알아보기 (0) | 2022.12.20 |
댓글