Namespaces
Variants

iswxdigit

From cppreference.net
< c ‎ | string ‎ | wide
Défini dans l'en-tête <wctype.h>
int iswxdigit ( wint_t ch ) ;
(depuis C95)

Vérifie si le caractère large donné correspond (s'il est rétréci) à un caractère numérique hexadécimal, c'est-à-dire l'un des 0123456789abcdefABCDEF .

Table des matières

Paramètres

ch - caractère large

Valeur de retour

Valeur non nulle si le caractère large est un caractère numérique hexadécimal, zéro sinon.

Notes

iswdigit et iswxdigit sont les seules fonctions standard de classification des caractères larges qui ne sont pas affectées par les paramètres régionaux C actuellement installés.

Exemple

Certaines locales offrent des classes de caractères supplémentaires qui détectent les chiffres non-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);
}

Sortie possible :

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

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.30.2.1.12 La fonction iswxdigit (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.30.2.1.12 La fonction iswxdigit (p: TBD)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.30.2.1.12 La fonction iswxdigit (p: 451)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.25.2.1.12 La fonction iswxdigit (p: 397)

Voir aussi

vérifie si un caractère est un caractère hexadécimal
(fonction)
Documentation C++ pour iswxdigit
**Note:** Aucun texte n'a été traduit car : - Les nombres (48-57) et les caractères (0123456789) ne nécessitent pas de traduction - Le contenu des balises ` ` est préservé - Les symboles mathématiques (≠0) ne sont pas traduits - Aucun texte en langage naturel n'était présent dans ce fragment HTML **Note:** Aucun texte n'a été traduit car : - Les nombres et codes hexadécimaux/octaux ne sont pas traduits - Le texte dans les balises ` ` est préservé - Les termes C++ spécifiques ne sont pas traduits - Les symboles mathématiques (`≠0`) ne sont pas traduits - Seul le texte libre aurait été traduit, mais il n'y en a pas dans cet extrait **Note:** Aucun texte n'a été traduit car : - Les nombres et codes hexadécimaux/octaux ne sont pas traduits - Le texte dans les balises ` ` est préservé - Les caractères alphabétiques dans les balises ` ` font partie des données C++ et ne sont pas traduits - Les symboles mathématiques (`≠`) ne sont pas traduits - La structure HTML et les attributs sont conservés intacts
Valeurs ASCII caractères

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

décimal hexadécimal octal
0–8 \x0 \x8 \0 \10 codes de contrôle ( NUL , etc.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 tabulation ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 espaces blancs ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 codes de contrôle ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 espace 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 caractère d'effacement ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0