Namespaces
Variants

std:: isupper

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

Vérifie si le caractère donné est un caractère majuscule tel que classifié par les paramètres régionaux C actuellement installés. Dans les paramètres régionaux par défaut "C" , std::isupper retourne une valeur non nulle uniquement pour les lettres majuscules ( ABCDEFGHIJKLMNOPQRSTUVWXYZ ).

Si std::isupper retourne une valeur non nulle, il est garanti que std::iscntrl , std::isdigit , std::ispunct , et std::isspace retournent zéro pour le même caractère dans la même locale C.

Le comportement n'est pas défini si la valeur de ch n'est pas représentable en tant que 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 une lettre majuscule, zéro sinon.

Notes

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

bool my_isupper(char ch)
{
    return std::isupper(static_cast<unsigned char>(ch));
}
Le code C++ reste inchangé comme demandé. Le texte environnant a été traduit en français selon les instructions.

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

Exemple

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xc6'; // lettre Æ en ISO-8859-1
    std::cout << "isupper(\'\\xc6\', locale C par défaut) a retourné "
              << std::boolalpha << (bool)std::isupper(c) << '\n';
    std::setlocale(LC_ALL, "en_GB.iso88591");
    std::cout << "isupper(\'\\xc6\', locale ISO-8859-1) a retourné "
              << std::boolalpha << (bool)std::isupper(c) << '\n';
}

Sortie possible :

isupper('\xc6', default C locale) returned false
isupper('\xc6', ISO-8859-1 locale) returned true

Voir aussi

vérifie si un caractère est classé comme majuscule par une locale
(modèle de fonction)
vérifie si un caractère large est un caractère majuscule
(fonction)
Documentation C pour isupper
**Note:** Le contenu fourni ne contient aucun texte traduisible en dehors des balises ` `. Tous les éléments numériques, caractères spéciaux et notations techniques sont préservés conformément aux instructions. **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 restent en anglais - Les symboles mathématiques (≠) ne sont pas traduits - Seul le texte libre "–" (tiret) pourrait être traduit, mais il s'agit d'un séparateur numérique standard **Note:** Le contenu HTML fourni ne contient aucun texte traduisible en dehors des balises ` `. Les seuls éléments textuels sont : - Les plages numériques "123–126" (qui ne nécessitent pas de traduction) - Les caractères "–" (qui sont des séparateurs) - Les symboles "≠0" (notation mathématique standard) Tous les autres éléments sont soit des codes C++, soit des valeurs numériques, soit contenus dans des balises ` ` qui doivent être préservées selon vos instructions.
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