std:: tolower
|
Défini dans l'en-tête
<cctype>
|
||
|
int
tolower
(
int
ch
)
;
|
||
Convertit le caractère donné en minuscule 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 majuscules suivantes
ABCDEFGHIJKLMNOPQRSTUVWXYZ
sont remplacées par leurs lettres minuscules respectives
abcdefghijklmnopqrstuvwxyz
.
Table des matières |
Paramètres
| ch | - | caractère à convertir. Si la valeur de ch n'est pas représentable comme unsigned char et n'est pas égale à EOF , le comportement est indéfini |
Valeur de retour
Version en minuscules de ch ou ch non modifié si aucune version minuscule n'est répertoriée dans les paramètres régionaux C actuels.
Notes
Comme toutes les autres fonctions de
<cctype>
, le comportement de
std::tolower
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_tolower(char ch) { return static_cast<char>(std::tolower(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_tolower(std::string s) { std::transform(s.begin(), s.end(), s.begin(), // static_cast<int(*)(int)>(std::tolower) // incorrect // [](int c){ return std::tolower(c); } // incorrect // [](char c){ return std::tolower(c); } // incorrect [](unsigned char c){ return std::tolower(c); } // correct ); return s; }
Exemple
#include <cctype> #include <clocale> #include <iostream> int main() { unsigned char c = '\xb4'; // the character Ž in ISO-8859-15 // but ´ (acute accent) in ISO-8859-1 std::setlocale(LC_ALL, "en_US.iso88591"); std::cout << std::hex << std::showbase; std::cout << "in iso8859-1, tolower('0xb4') gives " << std::tolower(c) << '\n'; std::setlocale(LC_ALL, "en_US.iso885915"); std::cout << "in iso8859-15, tolower('0xb4') gives " << std::tolower(c) << '\n'; }
Sortie possible :
in iso8859-1, tolower('0xb4') gives 0xb4
in iso8859-15, tolower('0xb4') gives 0xb8
Voir aussi
|
convertit un caractère en majuscule
(fonction) |
|
convertit un caractère en minuscule en utilisant
la facette
ctype
d'une locale
(modèle de fonction) |
|
|
convertit un caractère large en minuscule
(fonction) |
|
|
Documentation C
pour
tolower
|
|
Liens externes
| 1. | ISO/IEC 8859-1 . De Wikipédia. |
| 2. | ISO/IEC 8859-15 . De Wikipédia. |