ホームC言語Tips集文字 ≫ 文字が16進数の数字かどうかをチェックする

C言語Tips集 - 文字が16進数の数字かどうかをチェックする

C言語で文字が 16 進数の数字かどうかをチェックするには ctype.hisxdigit 関数を使用します.

isxdigit

#include <ctype.h>
int isxdigit(
    int c /* int 型の文字 */
);

isxdigit 関数は,指定した文字 c が 16 進数の数字 ('0' - '9', 'A' - 'F', 'a' - 'f') なら真 (0 以外) を返す関数です.

C言語サンプルプログラム

isxdigit 関数を使用して入力された文字が 16 進数の数字かどうかをチェックするサンプルプログラムを以下に示します.

/* header files */
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

/* main */
int main(void) {
    int ch = getchar();

    /* 入力チェック */
    if ( isxdigit((unsigned char)ch) ) {
        puts("入力された文字は16進数の数字です.");
    } else {
        puts("入力された文字は16進数の数字ではありません.");
    }

    return EXIT_SUCCESS;
}

実行例

サンプルプログラムの実行結果は以下のようになります.

(0を入力)
入力された文字は16進数の数字です.

(9を入力)
入力された文字は16進数の数字です.

(aを入力)
入力された文字は16進数の数字です.

(Fを入力)
入力された文字は16進数の数字です.

(Gを入力)
入力された文字は16進数の数字ではありません.

(~を入力)
入力された文字は16進数の数字ではありません.