C 库 - iswxdigit() 函数
C wctype 库中的 iswxdigit() 函数用于检查给定的宽字符(用 wint_t 表示)是否对应(如果缩小)十六进制数字字符,例如"0123456789ABCDEF"中的一个。
此函数可用于输入验证、解析十六进制数字、数据清理或语法高亮。
"iswdigit"和"iswxdigit"是仅有的两个不受当前安装的 C 语言环境影响的标准宽字符函数。
语法
以下是 iswxdigit() 函数的 C 库语法−
int iswxdigit( wint_t ch )
参数
此函数接受单个参数 −
-
ch − 需要检查的是"wint_t"类型的宽字符。
返回值
如果宽字符是十六进制数字字符,此函数返回非零值,否则返回零。
示例 1
以下是演示 iswxdigit() 函数用法的基本 C 语言示例。
#include <wctype.h> #include <stddef.h> #include <wchar.h> int main() { wchar_t ch = L'F'; if (iswxdigit(ch)) { // 该字符是有效的十六进制数字(0-9、a-f、A-F) wprintf(L"%lc is a valid hexadecimal digit. ", ch); } else { wprintf(L"%lc is not a valid hexadecimal digit. ", ch); } }
输出
以下是输出 -
F is a valid hexadecimal digit.
示例 2
我们创建一个 C 程序,并使用 is digit() 来检查十六进制数字字符是否有效。
#include <wctype.h> #include <stddef.h> #include <wchar.h> int main() { const wchar_t *hexString = L"3A4f"; while (*hexString) { if (!iswxdigit(*hexString)) { wprintf(L"Invalid hexadecimal string. "); return 1; } hexString++; } wprintf(L"Valid hexadecimal string. "); }
输出
以下是输出 -
Valid hexadecimal string.
示例 3
让我们创建另一个 C 程序,从用户输入或数据流中过滤掉非十六进制字符。
#include <wctype.h> #include <stddef.h> #include <wchar.h> int main() { const wchar_t *input = L"123GHI456"; wchar_t sanitized[100]; int j = 0; for (int i = 0; input[i] != L'\0'; i++) { if (iswxdigit(input[i])) { sanitized[j++] = input[i]; } } sanitized[j] = L'\0'; wprintf(L"Sanitized hexadecimal string: %ls ", sanitized); }
输出
以下是输出 -
Sanitized hexadecimal string: 123456