Namespaces
Variants

std:: tolower

From cppreference.net
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.