Namespaces
Variants

std:: isupper (std::locale)

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

Comprueba si el carácter dado está clasificado como un carácter alfabético en mayúscula según la faceta std::ctype de la configuración regional dada.

Contenidos

Parámetros

ch - carácter
loc - configuración regional

Valor de retorno

Devuelve true si el carácter se clasifica como mayúscula, false en caso contrario.

Implementación posible

template<class CharT>
bool isupper(CharT ch, const std::locale& loc)
{
    return std::use_facet<std::ctype<CharT>>(loc).is(std::ctype_base::upper, ch);
}

Ejemplo

Demuestra el uso de std::isupper() con diferentes configuraciones regionales (específicas del sistema operativo).

#include <iostream>
#include <locale>
int main()
{
    const wchar_t c = L'\u00de'; // LATIN CAPITAL LETTER THORN
    std::locale loc1("C");
    std::cout << std::boolalpha
              << "isupper('Þ', C locale) returned " << std::isupper(c, loc1) << '\n'
              << "islower('Þ', C locale) returned " << std::islower(c, loc1) << '\n';
    std::locale loc2("en_US.UTF8");
    std::cout << "isupper('Þ', Unicode locale) returned "
              << std::isupper(c, loc2) << '\n'
              << "islower('Þ', Unicode locale) returned "
              << std::islower(c, loc2) << '\n';
}

Salida posible:

isupper('Þ', C locale) returned false
islower('Þ', C locale) returned false
isupper('Þ', Unicode locale) returned true
islower('Þ', Unicode locale) returned false

Véase también

verifica si un carácter es un carácter en mayúscula
(función)
verifica si un carácter ancho es un carácter en mayúscula
(función)