Hàm iswpunct() kiểm tra ký tự rộng (wide character) có phải ký tự dấu câu (punctuation) không. Trả về khác 0 nếu đúng, 0 nếu sai. Khai báo trong <wctype.h> (C) / <cwctype> (C++).
Cú pháp
int iswpunct(wint_t c);
Ví dụ
#include <stdio.h>
#include <wctype.h>
int main() {
wint_t a = L'!';
wint_t b = L'a';
if (iswpunct(a)) printf("'%lc' la dau cau\n", a);
else printf("'%lc' KHONG phai dau cau\n", a);
if (iswpunct(b)) printf("'%lc' la dau cau\n", b);
else printf("'%lc' KHONG phai dau cau\n", b);
return 0;
}
Kết quả
'!' la dau cau
'a' KHONG phai dau cau
Giải thích: L'!' là wide char dấu câu -> true. L'a' là chữ cái -> false.
iswpunct vs ispunct
| Hàm | Kiểu tham số | Header | Dùng cho |
|---|---|---|---|
| ispunct | int (char) | ctype.h | ASCII/single-byte |
| iswpunct | wint_t (wchar_t) | wctype.h | Wide char/Unicode |
Lưu ý: Ký tự dấu câu phụ thuộc locale. Với locale "C" mặc định:
!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~. Dùng setlocale để thay đổi.