一、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
微信掃一掃
支付寶掃一掃