runoops.com

C 库函数 – isxdigit()

C 标准库 – ctype.h

描述

C 库函数 int isxdigit(int c) 检查所传的字符是否是十六进制数字。

int isxdigit(int c) 参数 c 是单个字符。

十六进制一般用数字 0 到 9 和字母 A 到 F(或 a~f)表示,其中 A~F 表示 10~15: 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F

声明

下面是 isxdigit() 函数的声明。

int isxdigit(int c);

参数

  • c -- 这是要检查的字符。

返回值

如果 c 是一个十六进制数字,则该函数返回非零的整数值,否则返回 0。

实例

下面的实例演示了 isxdigit() 函数的用法。

实例

#include <ctype.h>
#include <stdio.h>
 
int main() {
   char c = '5';
   int result;
 
   // 传入字符
   result = isxdigit(c); // result 返回非 0
   printf("%c 传入到 isxdigit() 函数结果为: %d", c, isxdigit(c));
   printf("\n");  // 换行
   c = 'M';
 
   // 非十六进制数作为参数
   result = isxdigit(c); // result 为 0
 
   printf("%c 传入到 isxdigit() 函数结果为: %d", c, isxdigit(c));
 
   return 0;
}

让我们编译并运行上面的程序,这将产生以下结果:

5 传入到 isxdigit() 函数结果为: 1
M 传入到 isxdigit() 函数结果为: 0

找出字符串中为十六进制数字的字符:

实例

#include<ctype.h>
#include<stdio.h>
int main()
{
    char str[]="123c@#run[oobe?";
    int i;
    for(i=0;str[i]!='\0';i++) {
        if(isxdigit(str[i])) {
            printf("%c 是一个十六进制数\n",str[i]);
        }
    }
    
}

让我们编译并运行上面的程序,这将产生以下结果:

1 是一个十六进制数
2 是一个十六进制数
3 是一个十六进制数
c 是一个十六进制数
b 是一个十六进制数
e 是一个十六进制数

C 标准库 – ctype.h