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

C++ isspace() 함수란? 공백 문자 판별 방법과 예제 코드 총정리

isspace() 함수란?

isspace() 함수는 <ctype.h>(C++에서는 <cctype>) 헤더 파일에 미리 정의되어 있는 함수로, 인자로 전달된 문자가 공백 문자(whitespace)인지 아닌지를 판별합니다. 문자가 공백이면 0이 아닌 값(true)을, 공백이 아니면 0(false)을 반환합니다.

C 표준에서 isspace()가 공백으로 판별하는 문자는 다음과 같습니다.

  • 스페이스 (' ')
  • 수평 탭 ('\t')
  • 줄바꿈 ('\n')
  • 수직 탭 ('\v')
  • 폼 피드 ('\f')
  • 캐리지 리턴 ('\r')

예제 1: 문자열에서 공백 개수 세기

다음은 isspace() 함수를 활용해 문자열 안에 공백이 몇 개 있는지 세는 프로그램입니다.

#include <iostream>
#include <ctype.h>

using namespace std;
int main() {
    char str[] = "Coding is fun";
    int i, count = 0;

    for(i = 0; str[i] != '\0'; i++) {
        if(isspace(str[i]))
            count++;
    }

    cout << "문자열의 공백 개수: " << count;
    return 0;
}

실행 결과

문자열의 공백 개수: 2

위 프로그램에서는 먼저 문자열 str을 정의한 뒤, for 반복문으로 문자열의 각 문자를 널 문자('\0')가 나올 때까지 하나씩 검사합니다. 검사 중인 문자가 공백 문자라면 count 변수를 1씩 증가시키고, 반복이 끝나면 최종적으로 count 값을 화면에 출력합니다. "Coding is fun"이라는 문자열에는 공백이 2개 있으므로 결과로 2가 출력됩니다.

예제 2: 단일 문자의 공백 여부 판별

이번에는 isspace() 함수를 사용해 주어진 문자가 공백 문자인지 아닌지 직접 확인하는 프로그램입니다.

#include <iostream>
#include <ctype.h>

using namespace std;
int main() {
    char ch1 = 'A';
    char ch2 = ' ';

    if(isspace(ch1))
        cout << "ch1은 공백입니다" << endl;
    else
        cout << "ch1은 공백이 아닙니다" << endl;

    if(isspace(ch2))
        cout << "ch2는 공백입니다" << endl;
    else
        cout << "ch2는 공백이 아닙니다" << endl;

    return 0;
}

실행 결과

ch1은 공백이 아닙니다
ch2는 공백입니다

위 프로그램에서는 문자형 변수 ch1('A')과 ch2(스페이스 ' ')를 정의한 뒤, isspace() 함수로 각각 공백 문자인지 검사합니다. 'A'는 공백이 아니므로 첫 번째 조건문의 else 블록이 실행되고, 스페이스 문자인 ch2는 공백으로 판별되어 if 블록이 실행됩니다.

정리

isspace() 함수는 문자열 파싱, 입력값 검증 등에서 공백 문자를 걸러내야 할 때 매우 유용하게 활용됩니다. 한 가지 참고할 점은, 현대적인 C++ 코드에서는 <ctype.h> 대신 <cctype> 헤더를 포함하는 것이 권장된다는 것입니다.