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

Hàm iswpunct() trong C++ STL


Trong bài viết này, chúng ta sẽ thảo luận về hàm iswpunct() trong C++, cú pháp, cách hoạt động và giá trị trả về.

iswpunct() là hàm built-in trong C++ được định nghĩa trong header <cwctype>. Hàm kiểm tra xem ký tự rộng truyền vào có phải là ký tự dấu câu (punctuation) hay không. Đây là phiên bản wide character của ispunct(). Nếu là dấu câu trả về khác 0 (true), ngược lại trả về 0 (false).

Các ký tự dấu câu bao gồm

! @ # $ % ^ & * ( ) " ' , . / ; [ { } ] : ?

Cú pháp

int iswpunct(wint_t ch);

Hàm chỉ nhận một tham số: ký tự rộng cần kiểm tra. Tham số được ép kiểu sang wint_t hoặc WEOF.

Giá trị trả về

Hàm trả về giá trị nguyên: 0 (false) hoặc khác 0 (true).

Ví dụ 1

#include <iostream>
#include <cwctype>
using namespace std;

int main() {
    wint_t a = L'.';
    wint_t b = L'a';
    wint_t c = L'1';
    iswpunct(a) ? cout << "\nLà ký tự dấu câu" : cout << "\nKhông phải ký tự dấu câu";
    iswpunct(b) ? cout << "\nLà ký tự dấu câu" : cout << "\nKhông phải ký tự dấu câu";
    iswpunct(c) ? cout << "\nLà ký tự dấu câu" : cout << "\nKhông phải ký tự dấu câu";
    return 0;
}

Kết quả

Là ký tự dấu câu
Không phải ký tự dấu câu
Không phải ký tự dấu câu

Ví dụ 2: Đếm dấu câu trong chuỗi rộng

#include <iostream>
#include <cwctype>
using namespace std;

int main() {
    int i = 0, count = 0;
    wchar_t s[] = L"@tutorials, point!!";
    while (s[i]) {
        if (iswpunct(s[i]))
            count++;
        i++;
    }
    cout << "Có " << count << " ký tự dấu câu.\n";
    return 0;
}

Kết quả

Có 4 ký tự dấu câu.