名前空間
変種
操作

iswxdigit

From cppreference.com
< c‎ | string‎ | wide
 
 
 
 
ヘッダ <wctype.h> で定義
int iswxdigit( wint_t ch );
(C95 以降)

与えられたワイド文字が(狭められた場合に)16進数字文字、つまり `0123456789abcdefABCDEF` のいずれかに対応するかどうかをチェックします。

目次

[編集] パラメータ

文字 - ワイド文字

[編集] 戻り値

ワイド文字が16進数字文字であればゼロ以外の値、そうでなければゼロを返します。

[編集] 注意

iswdigit および `iswxdigit` は、現在インストールされているCロケールに影響されない、標準のワイド文字分類関数です。

[編集]

一部のロケールでは、ASCII以外の数字を検出する追加の文字クラスが提供されます。

#include <locale.h>
#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
 
void test(wchar_t a3, wchar_t u3, wchar_t j3)
{
    printf("\t  '%lc'  '%lc' '%lc'\n", a3, u3, j3);
    printf("iswxdigit: %d    %d    %d\n",
           !!iswxdigit(a3),
           !!iswxdigit(u3),
           !!iswxdigit(j3));
    printf("jdigit:    %d    %d    %d\n",
           !!iswctype(a3, wctype("jdigit")),
           !!iswctype(u3, wctype("jdigit")),
           !!iswctype(j3, wctype("jdigit")));
}
 
int main(void)
{
    wchar_t a3 = L'9';  // the ASCII digit 9
    wchar_t u3 = L'〩'; // the CJK numeral 9
    wchar_t j3 = L'9'; // the full-width digit 9
 
    setlocale(LC_ALL, "en_US.utf8");
    puts("In American locale:");
    test(a3, u3, j3);
 
    setlocale(LC_ALL, "ja_JP.utf8");
    puts("\nIn Japanese locale:");
    test(a3, u3, j3);
}

実行結果の例

In American locale:
	  '9'  '〩' '9'
iswxdigit: 1    0    0
jdigit:    0    0    0
 
In Japanese locale:
	  '9'  '〩' '9'
iswxdigit: 1    0    0
jdigit:    0    0    1

[編集] 参考文献

  • C23標準 (ISO/IEC 9899:2024)
  • 7.30.2.1.12 The iswxdigit function (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.30.2.1.12 The iswxdigit function (p: TBD)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.30.2.1.12 The iswxdigit function (p: 451)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.25.2.1.12 The iswxdigit function (p: 397)

[編集] 関連項目

文字が16進数文字か調べる
(関数) [編集]
ASCII値 文字

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

10進数 16進数 8進数
0–8 \x0\x8 \0\10 制御コード (NUL など) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 タブ (\t) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA\xD \12\15 空白 (\n, \v, \f, \r) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE\x1F \16\37 制御コード ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 スペース 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33–47 \x21\x2F \41\57 !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48–57 \x30\x39 \60\71 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58–64 \x3A\x40 \72\100 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65–70 \x41\x46 \101\106 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71–90 \x47\x5A \107\132 GHIJKLMNOP
QRSTUVWXYZ
0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91–96 \x5B\x60 \133\140 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97–102 \x61\x66 \141\146 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103–122 \x67\x7A \147\172 ghijklmnop
qrstuvwxyz
0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123–126 \x7B\x7E \173\176 {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 バックスペース文字 (DEL) ≠0 0 0 0 0 0 0 0 0 0 0 0
English 日本語 中文(简体) 中文(繁體)