一、isxdigit函数的作用
#include <ctype.h>
int isxdigit(int c);
isxdigit函数的作用是判断一个字符是否是十六进制数字,即09、AF、a~f中的任意一个。
二、isxdigit函数的返回值
isxdigit函数的返回值是int类型,若参数c
是十六进制数字,则返回一个非零值(true),否则返回零(false)。
三、isxdigit函数的使用方法
使用isxdigit函数时需要引用头文件ctype.h
,如下所示:
#include <ctype.h>
#include <stdio.h>
int main()
{
char c = '1';
if (isxdigit(c))
printf("%c is a hexadecimal digit.\n", c);
else
printf("%c is not a hexadecimal digit.\n", c);
return 0;
}
上述代码的输出结果为:
1 is a hexadecimal digit.
需要注意的是,isxdigit函数只能判断单个字符是否是十六进制数字,如果需要判断一个字符串是否全部由十六进制数字组成,可以使用其他函数结合循环实现。
四、isxdigit函数的示例代码
示例1:判断字符是否是十六进制数字
#include <ctype.h>
#include <stdio.h>
int main()
{
char c = '1';
if (isxdigit(c))
printf("%c is a hexadecimal digit.\n", c);
else
printf("%c is not a hexadecimal digit.\n", c);
return 0;
}
输出结果:
1 is a hexadecimal digit.
示例2:判断字符串是否全部由十六进制数字组成
#include <ctype.h>
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "1A2fFc3d";
int i, len = strlen(str);
for (i = 0; i < len; i++)
{
if (!isxdigit(str[i]))
{
printf("%s is not a hexadecimal number.\n", str);
return 0;
}
}
printf("%s is a hexadecimal number.\n", str);
return 0;
}
输出结果:
1A2fFc3d is a hexadecimal number.
示例3:将十六进制数字转换为对应的整数
#include <ctype.h>
#include <stdio.h>
int main()
{
char hex[] = "ABCD";
int i, len = strlen(hex), decimal = 0, base = 1;
for (i = len - 1; i >= 0; i--)
{
if (isdigit(hex[i]))
decimal += (hex[i] - 48) * base;
else if (isalpha(hex[i]))
decimal += (toupper(hex[i]) - 55) * base;
base *= 16;
}
printf("The decimal value of %s is %d.\n", hex, decimal);
return 0;
}
输出结果:
The decimal value of ABCD is 43981.
五、总结
isxdigit函数是ctype.h
头文件中提供的一个函数,作用是判断一个字符是否是十六进制数字。它的返回值是int类型,若参数c
是十六进制数字,则返回一个非零值(true),否则返回零(false)。使用isxdigit函数需要引用ctype.h
头文件,它只能判断单个字符是否是十六进制数字,对于字符串的判断需要结合其他函数进行循环实现。