ใน C++ STL ฟังก์ชัน iswdigit() เป็นฟังก์ชันในตัวที่ใช้ตรวจสอบว่าอักขระแบบกว้างที่ระบุเป็นอักขระทศนิยมหรืออักขระอื่น ฟังก์ชันนี้มีอยู่ในไฟล์ส่วนหัว cwctype ใน C/C++
ตัวอักษรหลักทศนิยมคืออะไร
อักขระหลักทศนิยมคือค่าตัวเลขที่เริ่มต้นจาก 0 เช่น 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
ไวยากรณ์ของฟังก์ชัน iswcntrl() มีดังนี้
int iswdigit() (wint_t c)
พารามิเตอร์ − c เป็นอักขระแบบกว้างที่ต้องตรวจสอบ ส่งไปยัง wint_t หรือ WEOF โดยที่ wint_t เป็นประเภทอินทิกรัล
คืนค่า − ค่าที่แตกต่างจากศูนย์ (เช่น จริง) หาก c เป็นตัวเลขทศนิยมจริง ๆ และค่าเป็นศูนย์ (เช่น เท็จ) มิฉะนั้น
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ป้อนสตริงในตัวแปร สมมติว่า str[] ของประเภทสตริง
-
เรียกใช้ฟังก์ชัน iswdigit() เพื่อตรวจสอบว่าอักขระแบบกว้างที่ระบุนั้นเป็นตัวเลขทศนิยมหรือไม่
-
พิมพ์ผลลัพธ์
ตัวอย่าง-1
#include <cwctype> #include <iostream> using namespace std; int main(){ wchar_t c_1 = '2'; wchar_t c_2 = '*'; // Function to check if the character // is a digit or not if (iswdigit(c_1)) wcout << c_1 << " is a character "; else wcout << c_1 << " is a digit "; wcout << endl; if (iswdigit(c_2)) wcout << c_2 << " is a character "; else wcout << c_2 << " is a digit "; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
2 is a digit * is a character
ตัวอย่าง-2
#include <stdio.h> #include <wchar.h> #include <wctype.h> int main (){ wchar_t str[] = L"1776ad"; long int year; if (iswdigit(str[0])) { year = wcstol (str,NULL,10); wprintf (L"The year that followed %ld was %ld.\n",year,year+1); } return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
The year 1777 followed 1776