Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Hàm iswpunct() trong C/C++

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àmKiểu tham sốHeaderDùng cho
ispunctint (char)ctype.hASCII/single-byte
iswpunctwint_t (wchar_t)wctype.hWide 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.