Namespaces
Variants

iswxdigit

From cppreference.net
< c ‎ | string ‎ | wide
Definido en el encabezado <wctype.h>
int iswxdigit ( wint_t ch ) ;
(desde C95)

Comprueba si el carácter ancho dado corresponde (si se reduce) a un carácter numérico hexadecimal, es decir, uno de 0123456789abcdefABCDEF .

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 hexadecimal, cero en caso contrario.

Notas

iswdigit y 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 <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("iswxdigit: %d    %d    %d\n",
           !!iswxdigit(a3),
           !!iswxdigit(u3),
           !!iswxdigit(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'9';  // the ASCII digit 9
    wchar_t u3 = L'〩'; // the CJK numeral 9
    wchar_t j3 = L'9'; // the full-width digit 9
    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);
}

Salida posible:

In American locale:
	  '9'  '〩' '9'
iswxdigit: 1    0    0
jdigit:    0    0    0
In Japanese locale:
	  '9'  '〩' '9'
iswxdigit: 1    0    0
jdigit:    0    0    1

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.30.2.1.12 La función iswxdigit (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.30.2.1.12 La función iswxdigit (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.30.2.1.12 La función iswxdigit (p: 451)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.25.2.1.12 La función iswxdigit (p: 397)

Véase también

comprueba si un carácter es un carácter hexadecimal
(función)
C++ documentation para iswxdigit
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 \173 \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