Namespaces
Variants

std:: tolower (std::locale)

From cppreference.net
Definido en el encabezado <locale>
template < class CharT >
CharT tolower ( CharT ch, const locale & loc ) ;

Convierte el carácter ch a minúscula si es posible, utilizando las reglas de conversión especificadas por el facet std::ctype de la configuración regional dada.

Contenidos

Parámetros

ch - carácter
loc - configuración regional

Valor de retorno

Devuelve la forma en minúsculas de ch si está listada en la configuración regional, de lo contrario devuelve ch sin cambios.

Notas

Solo se puede realizar un mapeo de caracteres 1:1 mediante esta función, por ejemplo, la letra griega mayúscula 'Σ' tiene dos formas minúsculas, dependiendo de la posición en una palabra: 'σ' y 'ς'. Una llamada a std::tolower no puede utilizarse para obtener la forma minúscula correcta en este caso.

Implementación posible

template<class CharT>
CharT tolower(CharT ch, const std::locale& loc)
{
    return std::use_facet<std::ctype<CharT>>(loc).tolower(ch);
}

Ejemplo

#include <cwctype>
#include <iostream>
#include <locale>
int main()
{
    wchar_t c = L'\u0190'; // Latin capital open E ('Ɛ')
    std::cout << std::hex << std::showbase;
    std::cout << "in the default locale, tolower(" << (std::wint_t)c << ") = "
              << (std::wint_t)std::tolower(c, std::locale()) << '\n';
    std::cout << "in Unicode locale, tolower(" << (std::wint_t)c << ") = "
              << (std::wint_t)std::tolower(c, std::locale("en_US.utf8")) << '\n';
}

Salida posible:

in the default locale, tolower(0x190) = 0x190
in Unicode locale, tolower(0x190) = 0x25b

Véase también

convierte un carácter a mayúsculas usando la faceta ctype de una configuración regional
(plantilla de función)
convierte un carácter a minúsculas
(función)
convierte un carácter ancho a minúsculas
(función)