Namespaces
Variants

std:: isxdigit

From cppreference.net
Défini dans l'en-tête <cctype>
int isxdigit ( int ch ) ;

Vérifie si le caractère donné est un caractère numérique hexadécimal ( 0123456789ABCDEFabcdef ).

Le comportement est indéfini si la valeur de ch n'est pas représentable comme unsigned char et n'est pas égale à EOF .

Table des matières

Paramètres

ch - caractère à classifier

Valeur de retour

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

Notes

std::isdigit et std::isxdigit sont les seules fonctions standard de classification de caractères étroits qui ne sont pas affectées par les paramètres régionaux C actuellement installés. Bien que certaines implémentations (par exemple Microsoft dans la page de codes 1252) puissent classer des caractères monococtets supplémentaires comme des chiffres.

Comme toutes les autres fonctions de <cctype> , le comportement de std::isxdigit est indéfini si la valeur de l'argument n'est ni représentable comme unsigned char ni égale à EOF . Pour utiliser ces fonctions de manière sûre avec des char simples (ou des signed char ), l'argument doit d'abord être converti en unsigned char :

bool my_isxdigit(char ch)
{
    return std::isxdigit(static_cast<unsigned char>(ch));
}

De même, ils ne doivent pas être utilisés directement avec des algorithmes standard lorsque le type de valeur de l'itérateur est char ou signed char . À la place, convertissez d'abord la valeur en unsigned char :

int count_xdigits(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isxdigit)         // incorrect
                      // [](int c){ return std::isxdigit(c); }           // incorrect
                      // [](char c){ return std::isxdigit(c); }          // incorrect
                         [](unsigned char c){ return std::isxdigit(c); } // correct
                        );
}

Exemple

#include <cctype>
#include <climits>
#include <iostream>
int main()
{
    for (int c = 0; UCHAR_MAX >= c; ++c)
        if (isxdigit(c))
            std::cout << static_cast<char>(c);
    std::cout << '\n';
}

Sortie :

0123456789ABCDEFabcdef

Voir aussi

vérifie si un caractère est classé comme chiffre hexadécimal par une locale
(modèle de fonction)
vérifie si un caractère large est un caractère hexadécimal
(fonction)
Documentation C pour isxdigit
**Notes sur la traduction :** - "tab" a été traduit par "tabulation" (terme technique standard en français) - Toutes les balises HTML et attributs sont préservés - Le contenu des balises ` ` n'a pas été traduit - La mise en forme originale est conservée - Les symboles mathématiques "≠0" et "0" sont maintenus **Note:** Le contenu fourni ne contient aucun texte traduisible en dehors des balises ` `. Tous les éléments sont soit des nombres, soit des codes C++, soit des balises HTML qui doivent être préservées selon vos instructions. **Note:** Aucun texte n'a été traduit car : - Les nombres et plages numériques (71–90) ne nécessitent pas de traduction - Tout le contenu se trouve dans des balises ` ` qui doivent être préservées - Les symboles mathématiques (≠0) sont universels - Aucun texte libre en dehors des balises de code n'est présent dans cet extrait **Note:** Le contenu HTML fourni ne contient aucun texte à traduire en dehors des balises ` `, donc aucune traduction n'a été effectuée. Toutes les balises HTML, attributs et contenu des balises ` ` ont été préservé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 \172 \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