Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 isgraph() 함수 완벽 정리: 문자의 그래픽 표현 판별하기

isgraph() 함수란?

isgraph() 함수는 전달된 문자가 그래픽 표현(graphical representation), 즉 화면에 실제로 출력 가능한 형태를 갖고 있는지 검사하는 C 라이브러리 함수입니다. 알파벳, 숫자, 특수문자처럼 눈으로 볼 수 있는 문자에는 참(0이 아닌 값)을 반환하고, 줄 바꿈이나 탭 같은 제어 문자 또는 공백 문자에는 0을 반환합니다. 이 함수는 ctype.h 헤더 파일에 선언되어 있습니다.

문법(Syntax)

C 언어에서 isgraph() 함수의 기본 문법은 다음과 같습니다.

int isgraph(int char);

매개변수로 검사할 문자를 int형으로 전달하며, 함수는 해당 문자가 그래픽 표현을 가질 경우 0이 아닌 값을, 그렇지 않을 경우 0을 반환합니다.

예제 코드

다음은 C 언어에서 isgraph() 함수를 활용하는 예제입니다.

#include<stdio.h>
#include<ctype.h>
int main() {
    int a = '\n';
    int b = '8';
    int c = 's';
    if(isgraph(a))
        printf("해당 문자는 그래픽 표현을 가집니다\n");
    else
        printf("해당 문자는 그래픽 표현을 가지지 않습니다\n");
    if(isgraph(b))
        printf("해당 문자는 그래픽 표현을 가집니다\n");
    else
        printf("해당 문자는 그래픽 표현을 가지지 않습니다\n");
    if(isgraph(c))
        printf("해당 문자는 그래픽 표현을 가집니다\n");
    else
        printf("해당 문자는 그래픽 표현을 가지지 않습니다\n");
    return 0;
}

실행 결과

해당 문자는 그래픽 표현을 가지지 않습니다
해당 문자는 그래픽 표현을 가집니다
해당 문자는 그래픽 표현을 가집니다

코드 설명

위 프로그램에서는 세 개의 변수를 선언하고 각각 초기화했습니다. 변수 a에는 줄 바꿈 문자('\n'), 변수 b에는 숫자 '8', 변수 c에는 알파벳 's'가 저장되어 있습니다. 이후 isgraph() 함수를 호출하여 각 문자가 그래픽 표현을 갖는지 여부를 판별합니다.

if(isgraph(a))
printf("해당 문자는 그래픽 표현을 가집니다\n");
else
printf("해당 문자는 그래픽 표현을 가지지 않습니다\n");

결과 분석

  • 줄 바꿈 문자('\n'): 제어 문자에 해당하므로 화면에 출력되는 그래픽 표현이 없어 거짓(0)을 반환합니다.
  • 숫자 '8': 출력 가능한 문자이므로 참(0이 아닌 값)을 반환합니다.
  • 알파벳 's': 역시 출력 가능한 문자이므로 참을 반환합니다.

참고 사항

isgraph() 함수는 공백 문자(' ')도 그래픽 표현이 없는 것으로 간주한다는 점에 유의하세요. 공백까지 포함한 출력 가능한 문자를 검사하려면 isprint() 함수를, 공백 문자 자체를 검사하려면 isspace() 함수를 사용하는 것이 적합합니다. 이러한 문자 분류 함수들을 조합하면 입력 데이터 검증이나 파서(parser) 구현 시 매우 유용하게 활용할 수 있습니다.