一、isxdigit函数的作用
#include <ctype.h> int isxdigit(int c);
isxdigit函数的作用是判断一个字符是否是十六进制数字,即0~9、A~F、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头文件,它只能判断单个字符是否是十六进制数字,对于字符串的判断需要结合其他函数进行循环实现。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/160575.html