Trong bài viết này, chúng ta sẽ thảo luận về hàm iswxdigit() trong C++, cú pháp, cách hoạt động và giá trị trả về.
iswxdigit() là hàm built-in trong C++ được định nghĩa trong header <cwctype>. Hàm kiểm tra xem ký tự rộng (wide character) truyền vào có phải là ký tự thập lục phân (hexadecimal) hay không. Nếu là ký tự hex thì trả về giá trị khác 0 (true), ngược lại trả về 0 (false).
Các ký tự thập lục phân bao gồm:
0 1 2 3 4 5 6 7 8 9 A B C D E F
Cú pháp
int iswxdigit(wint_t ch);
Hàm chỉ nhận một tham số: ký tự rộng cần kiểm tra. Tham số được ép kiểu sang wint_t hoặc WEOF. wint_t lưu trữ kiểu dữ liệu nguyên.
Giá trị trả về
Hàm trả về giá trị nguyên: 0 (false) hoặc khác 0 (true).
Ví dụ 1
#include <iostream>
#include <cwctype>
using namespace std;
int main() {
wint_t a = L'A';
wint_t b = L'9';
wint_t c = L'g';
iswxdigit(a) ? cout << "\nLà ký tự hex" : cout << "\nKhông phải ký tự hex";
iswxdigit(b) ? cout << "\nLà ký tự hex" : cout << "\nKhông phải ký tự hex";
iswxdigit(c) ? cout << "\nLà ký tự hex" : cout << "\nKhông phải ký tự hex";
return 0;
}
Kết quả
Là ký tự hex Là ký tự hex Không phải ký tự hex
Ví dụ 2: Chuyển đổi hex sang decimal
#include <stdio.h>
#include <cwchar>
#include <cwctype>
using namespace std;
int main() {
wchar_t s[] = L"ffff";
long int num;
if (iswxdigit(s[0])) {
num = wcstol(s, NULL, 16);
wprintf(L"Số hex %lx là %ld.\n", num, num);
}
return 0;
}
Kết quả
Số hex ffff là 65535.