Namespaces
Variants

std:: isalnum

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

Vérifie si le caractère donné est un caractère alphanumérique tel que classifié par les paramètres régionaux C actuels. Dans les paramètres régionaux par défaut, les caractères suivants sont alphanumériques :

  • chiffres ( 0123456789 )
  • lettres majuscules ( ABCDEFGHIJKLMNOPQRSTUVWXYZ )
  • lettres minuscules ( abcdefghijklmnopqrstuvwxyz )

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 alphanumérique, 0 sinon.

Notes

Comme toutes les autres fonctions de <cctype> , le comportement de std::isalnum 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_isalnum(char ch)
{
    return std::isalnum(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_alnums(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isalnum)         // incorrect
                      // [](int c){ return std::isalnum(c); }           // incorrect
                      // [](char c){ return std::isalnum(c); }          // incorrect
                         [](unsigned char c){ return std::isalnum(c); } // correct
                        );
}

Exemple

Démontre l'utilisation de std::isalnum avec différentes locales (spécifiques au système d'exploitation).

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xdf'; // German letter ß in ISO-8859-1
    std::cout << "isalnum(\'\\xdf\', default C locale) returned "
              << std::boolalpha << static_cast<bool>(std::isalnum(c)) << '\n';
    if (std::setlocale(LC_ALL, "de_DE.iso88591"))
        std::cout << "isalnum(\'\\xdf\', ISO-8859-1 locale) returned "
                  << static_cast<bool>(std::isalnum(c)) << '\n';
}

Sortie possible :

isalnum('\xdf', default C locale) returned false
isalnum('\xdf', ISO-8859-1 locale) returned true

Voir aussi

vérifie si un caractère est classé comme alphanumérique par une locale
(modèle de fonction)
vérifie si un caractère large est alphanumérique
(fonction)
Documentation C pour isalnum
**Note:** Aucun texte à traduire n'a été trouvé dans ce fragment HTML. Tous les contenus sont soit : - Des balises HTML (conservées telles quelles) - Du contenu dans des balises ` ` (non traduit selon les instructions) - Des valeurs numériques et techniques (codes hexadécimaux, caractères, etc.) qui ne nécessitent pas de traduction Le tableau semble représenter des valeurs ASCII/Unicode pour les chiffres (0-9) et leurs propriétés dans différents contextes de programmation. **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'était présent **Note:** Aucun texte n'a été traduit car : - Les nombres et codes hexadécimaux/octaux ne doivent pas être modifiés - Le texte dans les balises ` ` est préservé - Les caractères alphabétiques "ghijklmnop qrstuvwxyz" font partie de données techniques C++ - Les symboles "≠0" et "0" sont des valeurs techniques - La structure HTML et les attributs sont conservés intacts **Note:** Aucun texte n'a nécessité de traduction dans cet extrait HTML car : - Les nombres et codes C++ sont conservés tels quels - Les symboles mathématiques (≠) ne sont pas traduits - Le texte entre balises ` ` est préservé - Il n'y avait pas de texte en anglais à traduire en français
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