Namespaces
Variants

std:: iswdigit

From cppreference.net
Definido en el encabezado <cwctype>
int iswdigit ( wint_t ch ) ;

Comprueba si el carácter ancho dado corresponde (si se reduce) a uno de los diez caracteres de dígitos decimales 0123456789 .

Si el valor de ch no es representable como un wchar_t ni igual al valor de la macro WEOF , el comportamiento es indefinido.

Contenidos

Parámetros

ch - carácter ancho

Valor de retorno

Valor distinto de cero si el carácter ancho es un carácter numérico, cero en caso contrario.

Notas

std::iswdigit y std::iswxdigit son las únicas funciones estándar de clasificación de caracteres anchos que no se ven afectadas por la configuración regional de C actualmente instalada.

Ejemplo

Algunas configuraciones regionales ofrecen clases de caracteres adicionales que detectan dígitos no ASCII

#include <clocale>
#include <cwctype>
#include <iostream>
void test(wchar_t a3, wchar_t u3, wchar_t j3)
{
    std::wcout << std::boolalpha
               << "\t   '" << 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 full-width 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);
}

Salida posible:

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

Véase también

comprueba si un carácter está clasificado como dígito según una configuración regional
(plantilla de función)
comprueba si un carácter es un dígito
(función)
Documentación de C para iswdigit
Valores ASCII caracteres

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

decimal hexadecimal octal
0–8 \x0 \x8 \0 \10 códigos de control ( NUL , etc.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 tabulación ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 espacios en blanco ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 códigos de control ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 espacio 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 carácter de retroceso ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0