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

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

ภาพรวม

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)

CodeCharชื่อ
0x00NULNull
0x07BELBell
0x08BSBackspace
0x09HTHorizontal Tab
0x0ALFLine Feed (Newline)
0x0DCRCarriage Return
0x1BESCEscape
0x7FDELDelete