- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
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)) {
// The character is a valid hexadecimal digit (0-9, a-f, A-F)
wprintf(L"%lc is a valid hexadecimal digit.\n", ch);
} else {
wprintf(L"%lc is not a valid hexadecimal digit.\n", ch);
}
}
输出
以下是输出:
F is a valid hexadecimal digit.
示例 2
我们创建一个c程序,并使用iswxdigit()来检查十六进制数字字符是否有效。
#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.\n");
return 1;
}
hexString++;
}
wprintf(L"Valid hexadecimal string.\n");
}
输出
以下是输出:
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\n", sanitized);
}
输出
以下是输出:
Sanitized hexadecimal string: 123456
c_library_wctype_h.htm
广告