◐ Shell
clean mode source ↗

std::iswdigit - cppreference.com

提供: cppreference.com

<tbody> </tbody>

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

ch の値が wchar_t として表現可能でなくマクロ WEOF の値と等しくもなければ、動作は未定義です。

引数

戻り値

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

ノート

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

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

#include <iostream>
#include <cwctype>
#include <clocale>
void test(wchar_t a3, wchar_t u3, wchar_t j3)
{
    std::wcout << std::boolalpha
               << "          '" << a3 << "'   '" << u3 << "'  '" << j3  << "'\n"
               << "iswdigit "
               << (bool)std::iswdigit(a3) << "  "
               << (bool)std::iswdigit(u3) << " "
               << (bool)std::iswdigit(j3) << '\n'
               << "jdigit:  "
               << (bool)std::iswctype(a3, std::wctype("jdigit")) << ' '
               << (bool)std::iswctype(u3, std::wctype("jdigit")) << ' '
               << (bool)std::iswctype(j3, std::wctype("jdigit")) << '\n';
}
int main()
{
    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

    std::setlocale(LC_ALL, "en_US.utf8");
    std::wcout << "In american locale:\n";
    test(a3, u3, j3);

    std::wcout << "\nIn japanese locale:\n";
    std::setlocale(LC_ALL, "ja_JP.utf8");
    test(a3, u3, j3);
}

出力:

In american locale:
          '3'   '三'  '3'
iswdigit true  false false
jdigit:  false false false

In japanese locale:
          '3'   '三'  '3'
iswdigit true  false false
jdigit:  false false true

関連項目

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 \172\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