C/C++에서 isblank() 함수는 전달된 문자가 공백(blank) 문자인지 여부를 검사하는 데 사용됩니다. 이 함수가 판별하는 공백 문자는 기본적인 스페이스(space) 문자와 탭(tab) 문자(\t) 두 가지입니다.
이 함수는 C 언어에서는 ctype.h 헤더 파일에, C++ 언어에서는 cctype 헤더 파일에 선언되어 있습니다.
isblank() 함수의 문법
C++에서 isblank() 함수의 기본 문법은 다음과 같습니다.
int isblank(int char);
함수는 매개변수로 전달된 문자가 공백 또는 탭이면 0이 아닌 값(true)을 반환하고, 그렇지 않으면 0(false)을 반환합니다.
isblank() 함수 예제
다음은 C++에서 isblank() 함수를 활용해 문자열 내 공백 개수를 세는 예제입니다.
#include <ctype.h>
#include <iostream>
using namespace std;
int main() {
string s = "The space between words. ";
int i = 0;
int count = 0;
while(s[i]) {
char c = s[i++];
if (isblank(c)) {
count++;
}
}
cout << "\nNumber of blanks in sentence : " << count << endl;
return 0;
}실행 결과
Number of blanks in sentence : 4
코드 설명
위 프로그램에서는 문자열 변수 s에 문장을 저장한 후, 반복문을 통해 문자열을 한 글자씩 순회하며 isblank() 함수로 각 문자가 공백인지 검사합니다. 공백으로 판별될 때마다 카운트 변수 count의 값을 1씩 증가시켜 최종적으로 문장 안의 공백 개수를 출력합니다.
핵심 로직은 다음 코드 조각에서 확인할 수 있습니다.
string s = "The space between words. ";
int i = 0;
int count = 0;
while(s[i]) {
char c = s[i++];
if (isblank(c)) {
count++;
}
}참고: isspace()와의 차이점
isblank()와 비슷한 함수로 isspace()가 있습니다. 두 함수의 차이는 다음과 같습니다.
- isblank(): 스페이스(' ')와 탭('\t', '\v')만 공백으로 간주합니다.
- isspace(): 스페이스, 탭뿐 아니라 줄바꿈('\n'), 캐리지 리턴('\r'), 폼 피드('\f'), 수직 탭('\v') 등 모든 공백 문자를 포함합니다.
따라서 단어 사이의 공백만 정확히 세거나 검사해야 하는 경우에는 isblank() 함수를 사용하는 것이 더 적합합니다.