isprint() trong C++ là hàm built-in trong header <cctype> (hoặc ctype.h) kiểm tra ký tự có in được (printable) hay không.
Đặc điểm
- Trả về true cho các ký tự in được (kể cả space ' ').
- Trả về false cho ký tự điều khiển: newline (\n), tab (\t), null (\0)...
- Phiên bản locale-specific có sẵn trong
<clocale>.
Cú pháp
int isprint(int c);
Tham số: c - ký tự cần kiểm tra (ép kiểu int hoặc EOF).
Ví dụ 1: In cho đến khi gặp ký tự không in được
/* isprint example */
#include <stdio.h>
#include <ctype.h>
int main() {
int i = 0;
char str[] = "first line\nsecond line\n";
while (isprint(str[i])) {
putchar(str[i]);
i++;
}
return 0;
}
Kết quả
first line
Chương trình dừng tại '\n' (không in được).
Ví dụ 2: Thay ký tự không in được bằng space
#include <cctype>
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[] = "Hello\tall\nhow are you";
for (int i = 0; i < strlen(str); i++) {
if (!isprint(str[i]))
str[i] = ' ';
}
cout << str;
return 0;
}
Kết quả
Hello all how are you
Các hàm liên quan trong <cctype>: isblank, iscntrl, isdigit, isgraph, isspace, ispunct...