Scanset là specifier hỗ trợ bởi họ hàm scanf. Diễn đạt bằng %[]. Bên trong chỉ định 1 ký tự hoặc tập ký tự (phân biệt chữ hoa/thường). Khi xử lý, scanf() chỉ nhận ký tự nằm trong scanset.
Ví dụ 1: Chỉ nhận chữ hoa
#include <stdio.h>
int main() {
char str[50];
printf("Enter something: ");
scanf("%[A-Z]s", str);
printf("Given String: %s", str);
return 0;
}
Kết quả
Enter something: HElloWorld Given String: HE
Bỏ qua chữ thường. 'W' cũng bị bỏ vì có chữ thường trước nó.
Ví dụ 2: Dùng ^ để dừng tại ký tự
#include <stdio.h>
int main() {
char str[50];
printf("Enter something: ");
scanf("%[^r]s", str);
printf("Given String: %s", str);
return 0;
}
Kết quả
Enter something: HelloWorld Given String: HelloWo
Dừng đọc khi gặp 'r'.
Ví dụ 3: Đọc chuỗi có khoảng trắng
#include <stdio.h>
int main() {
char str[50];
printf("Enter something: ");
scanf("%[^\n]s", str);
printf("Given String: %s", str);
return 0;
}
Kết quả
Enter something: Hello World. This line has some spaces. Given String: Hello World. This line has some spaces.