iswspace() คืออะไร?
iswspace() เป็นฟังก์ชันในตัวใน C++ ซึ่งนิยามในไฟล์หัวข้อ <cwctype> ฟังก์ชันนี้ตรวจสอบว่า อักขระกว้าง (wide character) ที่ส่งผ่านเข้ามาเป็น อักขระเว้นวรรค (whitespace character) หรือไม่ ฟังก์ชันนี้เป็นเวอร์ชัน wide character ของ isspace() ทำงานเหมือนกันแต่รองรับอักขระกว้าง ฟังก์ชันตรวจสอบว่าอาร์กิวเมนต์ที่ส่งมาเป็นอักขระเว้นวรรค (เช่น space, tab, newline) หากใช่ ส่งคืนค่าเต็มที่ไม่ใช่ศูนย์ (true) มิฉะนั้นส่งคืนศูนย์ (false)
อักขระเว้นวรรค (Whitespace characters) ประกอบด้วย
' ' (space) '\t' (tab) '\n' (newline) '\v' (vertical tab) '\f' (form feed) '\r' (carriage return)
ไวยากรณ์ (Syntax)
int iswspace(wint_t ch);
ฟังก์ชันรับพารามิเตอร์เพียงหนึ่งตัว คือ อักขระกว้างที่ต้องการตรวจสอบ อาร์กิวเมนต์จะถูกแปลงเป็น wint_t หรือ WEOF
ค่าที่ส่งคืน (Return Value)
ฟังก์ชันส่งคืนค่าเต็ม ซึ่งอาจเป็น 0 (กรณี false) หรือค่าใดๆ ที่ไม่ใช่ศูนย์ (กรณี true)
ตัวอย่างการใช้งาน iswspace()
#include <iostream>
#include <cwctype>
using namespace std;
int main() {
wint_t a = L'.';
wint_t b = L' ';
wint_t c = L'1';
iswspace(a) ? cout << "\nเป็นอักขระเว้นวรรค" : cout << "\nไม่ใช่อักขระเว้นวรรค";
iswspace(b) ? cout << "\nเป็นอักขระเว้นวรรค" : cout << "\nไม่ใช่อักขระเว้นวรรค";
iswspace(c) ? cout << "\nเป็นอักขระเว้นวรรค" : cout << "\nไม่ใช่อักขระเว้นวรรค";
return 0;
}
ผลลัพธ์ (Output)
ไม่ใช่อักขระเว้นวรรค เป็นอักขระเว้นวรรค ไม่ใช่อักขระเว้นวรรค
ตัวอย่างประยุกต์: นับจำนวนเว้นวรรคในสตริงกว้าง
#include <iostream>
#include <cwctype>
using namespace std;
int main() {
int i = 0, count = 0;
wchar_t s[] = L"I am visiting tutorials point";
while (s[i]) {
if (iswspace(s[i]))
count++;
i++;
}
cout << "มีอักขระเว้นวรรคทั้งหมด " << count << " ตัว\n";
return 0;
}
ผลลัพธ์ (Output)
มีอักขระเว้นวรรคทั้งหมด 4 ตัว
ฟังก์ชันที่เกี่ยวข้อง: isspace() (สำหรับ char ธรรมดา), iswblank() (ตรวจสอบ space และ tab เท่านั้น), iswctype() (ตรวจสอบตาม category แบบกำหนดเอง)