一、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/zh-hant/n/160575.html