##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# iswdigit

From cppreference.com
< c‎ | string‎ | wide

Defined in header `<wctype.h>` |  |
int iswdigit( wint_t ch ); |  | (since C95)

Checks if the given wide character corresponds (if narrowed) to one of the ten decimal digit characters 0123456789.

### [edit] Parameters

ch | - | wide character

### [edit] Return value

Non-zero value if the wide character is an numeric character, zero otherwise.

### [edit] Notes

`iswdigit` and iswxdigit are the only standard wide character classification functions that are not affected by the currently installed C locale.

### [edit] Example

Some locales offer additional character classes that detect non-ASCII digits

Run this code

    #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'３'; // 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);
    }

Output:

    In American locale:
            '3' '三' '３'
    iswdigit 1    0   0
    jdigit:  0    0   0

    In Japanese locale:
            '3' '三' '３'
    iswdigit 1    0   0
    jdigit:  0    0   1

### [edit] References

- 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] See also

isdigit | checks if a character is a digit (function) [edit]
C++ documentation for iswdigit

ASCII values (hex) | characters | `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` | control codes (`NUL`, etc.) | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
9 | `0x09` | tab (`\t`) | `≠0` | `0` | `≠0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
10 - 13 | `0x0A-0x0D` | whitespaces (`\n`,`\v`,`\f`,`\r`) | `≠0` | `0` | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
14 - 31 | `0x0E-0x1F` | control codes | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`
32 | `0x20` | space | `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` | backspace character (`DEL`) | `≠0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0`

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/string/wide/iswdigit&oldid=76823"