isxdigit

来自cppreference.com
< c‎ | string‎ | byte
定义于头文件 <ctype.h>
int isxdigit( int ch );

检查给定的字符是否十六进制数字字符(0123456789abcdefABCDEF)或被分类为十六进制数字字符。

ch的值不能表示为unsigned char且不等于EOF,则行为未定义。

目录

[编辑] 参数

ch - 要分类的字符

[编辑] 返回值

若字符为十六进制数字数字则为非零值,否则为零。

[编辑] 注意

isdigitisxdigit是仅有的不受当前安装的C本地环境影响的标准窄字符分类函数,尽管一些实现(例如Microsoft于1252代码页)可能将额外的单字节字符分类为数字。

[编辑] 示例

#include <stdio.h>
#include <ctype.h>
#include <limits.h>
 
int main(void)
{
    for (int ndx=0; ndx<=UCHAR_MAX; ndx++)
        if (isxdigit(ndx)) printf("%c", ndx);
    printf("\n");
}

输出:

0123456789ABCDEFabcdef

[编辑] 参考

  • C11 standard (ISO/IEC 9899:2011):
  • 7.4.1.12 The isxdigit function (p: 203)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.4.1.12 The isxdigit function (p: 184)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.3.1.11 The isxdigit function

[编辑] 参阅

检查宽字符是否为十六进制字符
(函数) [edit]
isxdigitC++文档
ASCII值
(十六进制)
字符

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

0 - 8 0x00-0x08 控制码 (NUL等) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 0x09 制表符 (\t) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10 - 13 0x0A-0x0D 空白符 (\n, \v, \f, \r) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14 - 31 0x0E-0x1F 控制码 ≠0 0 0 0 0 0 0 0 0 0 0 0
32 0x20 空格 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33 - 47 0x21-0x2F !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48 - 57 0x30-0x39 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58 - 64 0x3a-0x40 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65 - 70 0x41-0x46 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71 - 90 0x47-0x5A GHIJKLMNOPQRSTUVWXYZ 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91 - 96 0x5B-0x60 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97 -102 0x61-0x66 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103-122 0x67-0x7A ghijklmnopqrstuvwxyz 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123-126 0x7B-0x7E {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 0x7F 退格符 (DEL) ≠0 0 0 0 0 0 0 0 0 0 0 0