このエントリーをはてなブックマークに追加


16進数(HEX)文字列かどうかをチェックする・isxdigit

isxdigit関数を使うことにより、引数で渡した文字が16進数(HEX)文字列であるかどうかをチェックすることができます。
以下にisxdigit関数を使用したC言語サンプルコードと実行結果を記します。


スポンサーリンク

関連記事

isxdigit関数の書式等

isxdigit関数の書式は以下の通りです。

  • 必要なインクルードファイル
    #include <ctype.h>
  • 書式
    int isxdigit(int c);
  • 戻り値
    16進数(HEX)文字列の場合は0以外(真)、16進数(HEX)文字列以外の場合は0(偽)が返却されます。
    (対象となる文字は0〜9, a〜f, A〜Fになります。)
  • 引数
    対象となる文字(コード)

isxdigit関数を使用したサンプルコード

以下にisxdigit関数を使用したC言語サンプルコードを記します。
また実行結果も記します。

fileisxdigit.c (改行コードLF)

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void)
{
    char *ascii = "0123456789AbCdEfGhIj!$?";
    int i;

    for (i=0; i<strlen(ascii); i++) {
        if (isxdigit(ascii[i])) {
            printf("ascii[%d] = %c is hexadecimal digit.\n", i, ascii[i]);
        } else {
            printf("ascii[%d] = %c is *not* hexadecimal digit.\n", i, ascii[i]);
        }
    }

    return 0;
}

上記のC言語サンプルコードをコンパイルし、実行した時の結果を以下に記します。

$ gcc isxdigit.c -o isxdigit
$ ./isxdigit 
ascii[0] = 0 is hexadecimal digit.
ascii[1] = 1 is hexadecimal digit.
ascii[2] = 2 is hexadecimal digit.
ascii[3] = 3 is hexadecimal digit.
ascii[4] = 4 is hexadecimal digit.
ascii[5] = 5 is hexadecimal digit.
ascii[6] = 6 is hexadecimal digit.
ascii[7] = 7 is hexadecimal digit.
ascii[8] = 8 is hexadecimal digit.
ascii[9] = 9 is hexadecimal digit.
ascii[10] = A is hexadecimal digit.
ascii[11] = b is hexadecimal digit.
ascii[12] = C is hexadecimal digit.
ascii[13] = d is hexadecimal digit.
ascii[14] = E is hexadecimal digit.
ascii[15] = f is hexadecimal digit.
ascii[16] = G is *not* hexadecimal digit.
ascii[17] = h is *not* hexadecimal digit.
ascii[18] = I is *not* hexadecimal digit.
ascii[19] = j is *not* hexadecimal digit.
ascii[20] = ! is *not* hexadecimal digit.
ascii[21] = $ is *not* hexadecimal digit.
ascii[22] = ? is *not* hexadecimal digit.

以上、isxdigit関数を使用したCサンプルコードでした。


スポンサーリンク

添付ファイル: fileisxdigit.c 157件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 21:01:00 (1338d)