Namespaces
Variants

std:: tolower

From cppreference.net
Definido en el encabezado <cctype>
int tolower ( int ch ) ;

Convierte el carácter dado a minúsculas de acuerdo con las reglas de conversión de caracteres definidas por la configuración regional de C actualmente instalada.

En la configuración regional predeterminada "C" , las siguientes letras mayúsculas ABCDEFGHIJKLMNOPQRSTUVWXYZ se reemplazan con sus respectivas letras minúsculas abcdefghijklmnopqrstuvwxyz .

Contenidos

Parámetros

ch - carácter a convertir. Si el valor de ch no es representable como unsigned char y no es igual a EOF , el comportamiento es indefinido

Valor de retorno

Versión en minúsculas de ch o ch sin modificar si no existe una versión en minúsculas en la configuración regional actual de C.

Notas

Al igual que todas las demás funciones de <cctype> , el comportamiento de std::tolower es indefinido si el valor del argumento no es representable como unsigned char ni igual a EOF . Para usar estas funciones de forma segura con char simples (o signed char s), el argumento debe convertirse primero a unsigned char :

char my_tolower(char ch)
{
    return static_cast<char>(std::tolower(static_cast<unsigned char>(ch)));
}

Del mismo modo, no deben usarse directamente con algoritmos estándar cuando el tipo de valor del iterador es char o signed char . En su lugar, convierta el valor a unsigned char primero:

std::string str_tolower(std::string s)
{
    std::transform(s.begin(), s.end(), s.begin(),
                // static_cast<int(*)(int)>(std::tolower)         // incorrecto
                // [](int c){ return std::tolower(c); }           // incorrecto
                // [](char c){ return std::tolower(c); }          // incorrecto
                   [](unsigned char c){ return std::tolower(c); } // correcto
                  );
    return s;
}

Ejemplo

#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';
}

Salida posible:

in iso8859-1, tolower('0xb4') gives 0xb4
in iso8859-15, tolower('0xb4') gives 0xb8

Véase también

convierte un carácter a mayúsculas
(función)
convierte un carácter a minúsculas usando el facet ctype de una configuración regional
(plantilla de función)
convierte un carácter ancho a minúsculas
(función)
Documentación C para tolower

Enlaces externos

1. ISO/IEC 8859-1 . De Wikipedia.
2. ISO/IEC 8859-15 . De Wikipedia.