ホーム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進数の数字ではありません.

Cプログラマの必読書

たくさんあるC言語関連の書籍の中でも特に役に立った本です.よかったら参考にしてみてください.

C実践プログラミング 第3版

C言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです.
文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります. オライリーの本は,読みにくい本が多いのですが本書はとても読みやすくオススメです.


C言語ポインタ完全制覇 (標準プログラマーズライブラリ)

ポインタの解説書としては最高の書籍です.
この1冊でポインタを完全に理解することができます.全くの初学者が読むには敷居が高いですが,入門書を読み終えた後に読むと非常に有益です.

関連項目