ภาพรวม
iswcntrl() เป็นฟังก์ชันใน C++ STL (header <cwctype> หรือ <wctype.h>) ใช้ตรวจสอบว่า Wide Character เป็น Control Character หรือไม่
Control Character คืออะไร?
Control characters คือตัวอักษรที่ ไม่แสดงผลบนหน้าจอ (Non-printing) ใช้ควบคุมการทำงานของอุปกรณ์ เช่น:
\n(Newline, LF) - 0x0A\r(Carriage Return, CR) - 0x0D\t(Tab, HT) - 0x09\0(Null) - 0x00\b(Backspace) - 0x08- ASCII 0-31 และ 127 (DEL)
Syntax
int iswcntrl(wint_t c);
ค่าที่คืน
- Non-zero (true) - ถ้า c เป็น Control Character
- 0 (false) - ถ้าไม่ใช่
ตัวอย่างที่ 1: พิมพ์ข้อความจนกว่าจะเจอ Control Character
#include <stdio.h>
#include <wctype.h>
int main() {
int i = 0;
wchar_t str[] = L"first line \n second line \n";
while (!iswcntrl(str[i])) {
putchar(str[i]);
i++;
}
return 0;
}
ผลลัพธ์
first line
ตัวอย่างที่ 2: ไม่มี Control Character กลางข้อความ
#include <stdio.h>
#include <wctype.h>
int main() {
int i = 0;
wchar_t str[] = L"first linesecond line \nthird line";
while (!iswcntrl(str[i])) {
putchar(str[i]);
i++;
}
return 0;
}
ผลลัพธ์
first linesecond line
คำอธิบายเพิ่มเติม
- ใช้กันบ่อยในการ Parse text หรือหาจุดสิ้นสุดบรรทัด/ข้อความ
- Wide character version รองรับ Unicode Control Characters ด้วย
- สำหรับ ASCII ใช้
iscntrl()(header<cctype>) - ฟังก์ชันคู่คือ
iswprint()(ตรวจสอบ printable character)
ตาราง Control Characters หลัก (ASCII)
| Code | Char | ชื่อ |
|---|---|---|
| 0x00 | NUL | Null |
| 0x07 | BEL | Bell |
| 0x08 | BS | Backspace |
| 0x09 | HT | Horizontal Tab |
| 0x0A | LF | Line Feed (Newline) |
| 0x0D | CR | Carriage Return |
| 0x1B | ESC | Escape |
| 0x7F | DEL | Delete |