名前空間
変種
操作

iswdigit

提供: cppreference.com
< c‎ | string‎ | wide
ヘッダ <wctype.h> で定義
int iswdigit( wint_t ch );
(C95およびそれ以降)

指定されたワイド文字が (ナロー化された場合) 10進数字 0123456789 のいずれかに対応するかどうかを調べます。

目次

[編集] 引数

ch - ワイド文字

[編集] 戻り値

ワイド文字が数字であれば非ゼロの値、そうでなければゼロ。

[編集] ノート

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

[編集]

ロケールによっては非 ASCII 数字を検出する追加の文字クラスを提供します。

#include <stdio.h>
#include <wctype.h>
#include <wchar.h>
#include <locale.h>
 
void test(wchar_t a3, wchar_t u3, wchar_t j3)
{
    printf("        '%lc' '%lc' '%lc'\n", a3, u3, j3);
    printf("iswdigit %d    %d   %d\n",
           !!iswdigit(a3), !!iswdigit(u3), !!iswdigit(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'3';  // the ASCII digit 3
    wchar_t u3 = L'三'; // the CJK numeral 3
    wchar_t j3 = L'3'; // the fullwidth digit 3
 
    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:
        '3' '三' '3'
iswdigit 1    0   0
jdigit:  0    0   0
 
In Japanese locale:
        '3' '三' '3'
iswdigit 1    0   0
jdigit:  0    0   1

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.30.2.1.5 The iswdigit function (p: 449)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.25.2.1.5 The iswdigit function (p: 395)

[編集] 関連項目

文字が数字かどうか調べます
(関数) [edit]
ASCII値
(16進)
文字

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

0 - 8 0x00-0x08 制御コード (NULなど) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 0x09 タブ (\t) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10 - 13 0x0A-0x0D ホワイトスペース (\n,\v,\f,\r) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14 - 31 0x0E-0x1F 制御文字 ≠0 0 0 0 0 0 0 0 0 0 0 0
32 0x20 スペース 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33 - 47 0x21-0x2F !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48 - 57 0x30-0x39 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58 - 64 0x3a-0x40 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65 - 70 0x41-0x46 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71 - 90 0x47-0x5A GHIJKLMNOPQRSTUVWXYZ 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91 - 96 0x5B-0x60 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97 -102 0x61-0x66 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103-122 0x67-0x7A ghijklmnopqrstuvwxyz 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123-126 0x7B-0x7E {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 0x7F 削除文字 (DEL) ≠0 0 0 0 0 0 0 0 0 0 0 0