C语言isxdigit()函数:判断字符是否为十六进制数字字符
isxdigit()函数
头文件和函数原型
#include <ctype.h>
int isxdigit(int c);
描述
isxdigit()
是C语言标准库中的一个函数,用于判断一个字符是否为十六进制数字字符;
十六进制数字包括0~9
之间的数字,以及A~F
之间的字母(不区分大小写);
返回值
如果传入的字符参数是一个十六进制数字字符,则返回一个非0
值,否则返回0
;
示例代码
这个示例用来判断一个字符串是否为合法的MD5;
一个合法的MD5,字符串长度应为32,且所有字符都应是十六进制数字字符;
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdbool.h>
bool is_md5(const char* str) {
if (strlen(str) != 32) {
return false;
}
for (int i = 0; i < 32; i++) {
if (!isxdigit(*(str + i))) {
return false;
}
}
return true;
}
int main() {
char md5[] = "e10adc3949ba59abbe56e057f20f883e";
printf("%s %s a valid MD5 value.\n",
md5,
is_md5(md5) ? "is" : "is not");
}
程序运行结果
e10adc3949ba59abbe56e057f20f883e is a valid MD5 value.