반응형
1. isalpha
int isalpha(int ch);
- 알파벳(A–Z 또는 a–z)이면 true
- 즉, isupper(ch) || islower(ch)와 같음
isalpha('Q'); // true
isalpha('m'); // true
isalpha('7'); // false
2. isdigit
int isdigit(int ch);
- 숫자 문자('0'–'9')이면 true
isdigit('5'); // true
isdigit('a'); // false
3. isalnum
int isalnum(int ch);
- 알파벳(isalpha) 또는 숫자(isdigit)이면 true
- 즉, 영문자+숫자만 허용하는 상황에서 자주 사용
isalnum('a'); // true
isalnum('Z'); // true
isalnum('9'); // true
isalnum('@'); // false
4. isspace
int isspace(int ch);
- 공백 문자인지 확인
- 공백 문자란? ' ', \t(탭), \n(줄바꿈), \v(수직 탭), \f(폼 피드), \r(캐리지 리턴)
isspace(' '); // true
isspace('\n'); // true
isspace('a'); // false
5. ispunct
int ispunct(int ch);
- 구두점 문자(punctuation)인지 확인
- 알파벳·숫자·공백을 제외한 모든 인쇄 가능한 특수문자
- 예: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ { | } ~
ispunct('!'); // true
ispunct('@'); // true
ispunct('A'); // false
ispunct(' '); // false
실전 예시
문자열에서 공백 제거
string s = " a b\tc\n";
string noSpace;
for (char ch : s) {
if (!isspace((unsigned char)ch)) noSpace += ch;
}
cout << noSpace << endl; // "abc"
문자열에서 특수문자만 추출
string s = "Hello, World! 123 :)";
string puncts;
for (char ch : s) {
if (ispunct((unsigned char)ch)) puncts += ch;
}
cout << puncts << endl; // ",!:)"
입력값 검증 (ID: 영문자+숫자만 허용)
bool validID(const string& id) {
for (char ch : id) {
if (!isalnum((unsigned char)ch)) return false;
}
return true;
}
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
| C++ 문자열 -> 정수 변환 stoi vs atoi (0) | 2025.09.30 |
|---|---|
| C++ stoi 사용법 정리 (0) | 2025.09.30 |
| C++ 문자 대소문자 판별 & 변환 함수 정리 (isupper, islower, toupper, tolower) (0) | 2025.09.30 |
| C++ string::npos (-1) find함수의 반환값 (0) | 2025.09.29 |
| C++ String 헤더의 substr / find / erase 사용법 (0) | 2025.09.29 |
댓글