Hai hàm phân loại ký tự quan trọng trong <ctype.h> (C) / <cctype> (C++).
isalpha() - Kiểm tra chữ cái
- Trả về khác 0 (true) nếu ký tự là chữ cái (A-Z, a-z)
- Trả về 0 nếu không phải
- Phụ thuộc locale (locale "C" chỉ ASCII)
Cú pháp
int isalpha(int ch);
Tham số: int (ký tự ép sang unsigned char hoặc EOF)
Ví dụ
#include <stdio.h>
#include <ctype.h>
int main() {
char c1 = 's', c2 = '8', c3 = '@';
printf("'%c': %s\n", c1, isalpha(c1) ? "alphabet" : "not alphabet");
printf("'%c': %s\n", c2, isalpha(c2) ? "alphabet" : "not alphabet");
printf("'%c': %s\n", c3, isalpha(c3) ? "alphabet" : "not alphabet");
return 0;
}
Kết quả
's': alphabet '8': not alphabet '@': not alphabet
isdigit() - Kiểm tra chữ số
- Trả về khác 0 nếu ký tự là '0'..'9'
- Trả về 0 nếu không phải
Cú pháp
int isdigit(int ch);
Ví dụ
#include <stdio.h>
#include <ctype.h>
int main() {
char c1 = 's', c2 = '8';
printf("'%c': %s\n", c1, isdigit(c1) ? "digit" : "not digit");
printf("'%c': %s\n", c2, isdigit(c2) ? "digit" : "not digit");
return 0;
}
Kết quả
's': not digit '8': digit
Hàm liên quan trong ctype.h
| Hàm | Kiểm tra | ASCII range |
|---|---|---|
isalpha | Chữ cái | A-Z, a-z |
isdigit | Chữ số | 0-9 |
isalnum | Chữ cái hoặc số | A-Z, a-z, 0-9 |
islower | Chữ thường | a-z |
isupper | Chữ hoa | A-Z |
isspace | Whitespace | space, \t, \n, \v, \f, \r |
ispunct | Dấu câu | !@#$%^&*()... |
isxdigit | Hex digit | 0-9, A-F, a-f |
isprint | In được | Space đến ~ |
iscntrl | Control char | 0-31, 127 |
isgraph | In được trừ space | ! đến ~ |
| Hàm | Mô tả |
|---|---|
toupper(ch) | Chuyển thành chữ hoa |
tolower(ch) | Chuyển thành chữ thường |