본문 바로가기
c언어

c언어 문자 처리 라이브러리에 대하여 알아보기

by 개발자 L 2022. 12. 25.
반응형

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

결과가 잘 나온 것을 확인할 수 있습니다.

 

여기까지 문자 처리 라이브러리에 대하여 알아보았는데요,

다음 포스팅에서는 문자열 처리 라이브러리에 대하여 알아보도록 하겠습니다.

긴 글 읽어주신 독자분들께 진심으로 감사드립니다~

반응형

댓글