Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ฟังก์ชัน iswupper() ใน C++ STL

iswupper() คืออะไร?

iswupper() เป็นฟังก์ชันในตัวใน C++ ซึ่งนิยามในไฟล์หัวข้อ <cwctype> ฟังก์ชันนี้ตรวจสอบว่า อักขระกว้าง (wide character) ที่ส่งผ่านเข้ามาอยู่ในรูปแบบ ตัวพิมพ์ใหญ่ (uppercase A-Z) หรือไม่ ฟังก์ชันนี้เป็นเวอร์ชัน wide character ของ isupper() ทำงานเหมือนกันแต่รองรับอักขระกว้าง ฟังก์ชันตรวจสอบว่าอาร์กิวเมนต์ที่ส่งมาเป็นตัวพิมพ์ใหญ่ (A-Z) หากใช่ ส่งคืนค่าเต็มที่ไม่ใช่ศูนย์ (true) มิฉะนั้นส่งคืนศูนย์ (false)

ไวยากรณ์ (Syntax)

int iswupper(wint_t ch);

ฟังก์ชันรับพารามิเตอร์เพียงหนึ่งตัว คือ อักขระกว้างที่ต้องการตรวจสอบ อาร์กิวเมนต์จะถูกแปลงเป็น wint_t หรือ WEOF

wint_t เก็บข้อมูลชนิดเต็ม (integral type)

ค่าที่ส่งคืน (Return Value)

ฟังก์ชันส่งคืนค่าเต็ม ซึ่งอาจเป็น 0 (กรณี false) หรือค่าใดๆ ที่ไม่ใช่ศูนย์ (กรณี true)

ตัวอย่างการใช้งาน iswupper()

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

int main() {
    wint_t a = L'A';
    wint_t b = L'a';
    wint_t c = L'B';
    iswupper(a) ? cout << "\nเป็นตัวพิมพ์ใหญ่" : cout << "\nไม่ใช่ตัวพิมพ์ใหญ่";
    iswupper(b) ? cout << "\nเป็นตัวพิมพ์ใหญ่" : cout << "\nไม่ใช่ตัวพิมพ์ใหญ่";
    iswupper(c) ? cout << "\nเป็นตัวพิมพ์ใหญ่" : cout << "\nไม่ใช่ตัวพิมพ์ใหญ่";
    return 0;
}

ผลลัพธ์ (Output)

เป็นตัวพิมพ์ใหญ่
ไม่ใช่ตัวพิมพ์ใหญ่
เป็นตัวพิมพ์ใหญ่

ตัวอย่างประยุกต์: นับจำนวนตัวพิมพ์ใหญ่ในสตริงกว้าง

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

int main() {
    int i, count = 0;
    wchar_t s[] = L"I aM VisItinG TutOriAls PoInT";
    i = 0;
    while (s[i]) {
        if (iswupper(s[i]))
            count++;
        i++;
    }
    cout << "มีตัวพิมพ์ใหญ่ทั้งหมด " << count << " ตัวอักษร\n";
    return 0;
}

ผลลัพธ์ (Output)

มีตัวพิมพ์ใหญ่ทั้งหมด 11 ตัวอักษร

ฟังก์ชันที่เกี่ยวข้อง: isupper() (สำหรับ char ธรรมดา), iswlower() (ตรวจสอบตัวพิมพ์เล็ก wide), towupper() (แปลงเป็นตัวพิมพ์ใหญ่ wide), towlower() (แปลงเป็นตัวพิมพ์เล็ก wide)