Namespaces
Variants

std:: isalpha

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

Vérifie si le caractère donné est un caractère alphabétique tel que classifié par les paramètres régionaux C actuellement installés. Dans les paramètres régionaux par défaut, les caractères suivants sont alphabétiques :

  • lettres majuscules ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • lettres minuscules abcdefghijklmnopqrstuvwxyz

Dans les paramètres régionaux autres que "C" , un caractère alphabétique est un caractère pour lequel std::isupper() ou std::islower() renvoie une valeur non nulle, ou tout autre caractère considéré comme alphabétique par les paramètres régionaux. Dans tous les cas, std::iscntrl() , std::isdigit() , std::ispunct() et std::isspace() renverront zéro pour ce caractère.

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 alphabétique, zéro sinon.

Notes

Comme toutes les autres fonctions de <cctype> , le comportement de std::isalpha 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_isalpha(char ch)
{
    return std::isalpha(static_cast<unsigned char>(ch));
}
**Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises `
` et contient des termes spécifiques au C++. Seul le texte environnant aurait été traduit s'il y en avait eu.

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_alphas(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isalpha)         // incorrect
                      // [](int c){ return std::isalpha(c); }           // incorrect
                      // [](char c){ return std::isalpha(c); }          // incorrect
                         [](unsigned char c){ return std::isalpha(c); } // correct
                        );
}

Exemple

Démontre l'utilisation de std::isalpha 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 << "isalpha(\'\\xdf\', default C locale) returned "
              << std::boolalpha << !!std::isalpha(c) << '\n';
    std::setlocale(LC_ALL, "de_DE.iso88591");
    std::cout << "isalpha(\'\\xdf\', ISO-8859-1 locale) returned "
              << static_cast<bool>(std::isalpha(c)) << '\n';
}

Sortie possible :

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

Voir aussi

vérifie si un caractère est classé comme alphabétique selon une locale
(modèle de fonction)
vérifie si un caractère large est alphabétique
(fonction)
Documentation C pour isalpha
**Note:** Aucun texte n'a été traduit car : - Les nombres et codes hexadécimaux/octaux ne doivent pas être traduits - Le texte dans les balises ` ` est préservé - Les termes C++ spécifiques (`≠0`) restent inchangés - Les valeurs numériques et caractères ne sont pas traduits **Note:** Aucun texte n'a été traduit car : - Les nombres et codes hexadécimaux/octaux ne doivent pas être traduits - Le texte dans les balises ` ` est préservé - Les termes C++ spécifiques ne sont pas traduits - Les seuls textes potentiellement traduisibles (71-90) sont des plages numériques qui restent identiques en français **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 contenu dans les balises ` ` est préservé - Il n'y avait pas de texte descriptif à 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