std:: toupper
|
Défini dans l'en-tête
<cctype>
|
||
|
int
toupper
(
int
ch
)
;
|
||
Convertit le caractère donné en majuscule selon les règles de conversion de caractères définies par les paramètres régionaux C actuellement installés.
Dans la locale par défaut
"C"
, les lettres minuscules suivantes
abcdefghijklmnopqrstuvwxyz
sont remplacées par leurs lettres majuscules respectives
ABCDEFGHIJKLMNOPQRSTUVWXYZ
.
Table des matières |
Paramètres
| ch | - | caractère à convertir. Si la valeur de ch n'est pas représentable en tant que unsigned char et n'est pas égale à EOF , le comportement est indéfini. |
Valeur de retour
Caractère converti ou ch si aucune version majuscule n'est définie par les paramètres régionaux C actuels.
Notes
Comme toutes les autres fonctions de
<cctype>
, le comportement de
std::toupper
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
:
char my_toupper(char ch) { return static_cast<char>(std::toupper(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 :
std::string str_toupper(std::string s) { std::transform(s.begin(), s.end(), s.begin(), // static_cast<int(*)(int)>(std::toupper) // incorrect // [](int c){ return std::toupper(c); } // incorrect // [](char c){ return std::toupper(c); } // incorrect [](unsigned char c){ return std::toupper(c); } // correct ); return s; }
Exemple
#include <cctype> #include <climits> #include <clocale> #include <iostream> #include <ranges> int main() { for (auto bd{0}; unsigned char lc : std::views::iota(0, UCHAR_MAX)) if (unsigned char uc = std::toupper(lc); uc != lc) std::cout << lc << uc << (13 == ++bd ? '\n' : ' '); std::cout << "\n\n"; unsigned char c = '\xb8'; // the character ž in ISO-8859-15 // but ¸ (cedilla) in ISO-8859-1 std::setlocale(LC_ALL, "en_US.iso88591"); std::cout << std::hex << std::showbase; std::cout << "in iso8859-1, toupper('0xb8') gives " << std::toupper(c) << '\n'; std::setlocale(LC_ALL, "en_US.iso885915"); std::cout << "in iso8859-15, toupper('0xb8') gives " << std::toupper(c) << '\n'; }
Sortie :
aA bB cC dD eE fF gG hH iI jJ kK lL mM
nN oO pP qQ rR sS tT uU vV wW xX yY zZ
in iso8859-1, toupper('0xb8') gives 0xb8
in iso8859-15, toupper('0xb8') gives 0xb4
Voir aussi
|
convertit un caractère en minuscule
(fonction) |
|
|
convertit un caractère en majuscule en utilisant la facette ctype d'une locale
(modèle de fonction) |
|
|
convertit un caractère large en majuscule
(fonction) |
|
|
Documentation C
pour
toupper
|
|
Liens externes
| 1. | ISO/IEC 8859-1 . De Wikipédia. |
| 2. | ISO/IEC 8859-15 . De Wikipédia. |