iswdigit
From cppreference.com
 
 
 
 
 
  C 
 Concurrency support (C11)
 Null-terminated wide strings 
 
 
 
 
 
 
 
 
 
Character manipulation  Conversions to numeric formats  
 
 
 String manipulation  
 Array manipulation  
 
 
 Types  Macros  
(C95)
(C95)
(C95)
(C95)
iswdigit
(C95)
(C95)
  (C99)
(C95)(C99)
(C99)(C95)(C99)
(C95)(C11)
(C95)(C11)
  (C95)
(C95)(C95)
(C95)(C95)
(C95)
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 a 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 <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 ("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 full-width 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); }
Possible output:
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
[edit] References
- C23 standard (ISO/IEC 9899:2024):
- TBD 7.30.2.1.5 The iswdigit function (p: TBD)
 
- C17 standard (ISO/IEC 9899:2018):
- 7.30.2.1.5 The iswdigit function (p: 327)
 
- 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
C++ documentation  for iswdigit
| ASCII values | characters | isdigit  | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| decimal | hexadecimal | octal | |||||||||||||
| 0–8 | \x0–\x8 | 0円–10円 | control codes ( NUL, etc.) | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 9 | \x9 | 11円 | tab ( \t) | ≠0 | 0 | ≠0 | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 10–13 | \xA–\xD | 12円–15円 | whitespaces ( \n,\v,\f,\r) | ≠0 | 0 | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 14–31 | \xE–\x1F | 16円–37円 | control codes | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 
| 32 | \x20 | 40円 | space | 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円 | GHIJKLMNOPQRSTUVWXYZ | 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円 | ghijklmnopqrstuvwxyz | 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円 | backspace character ( DEL) | ≠0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |