Spec-Zone.ru › C++

std::isupper(std::locale)

Определено в заголовочном файле <locale>
template< class CharT >
bool isupper( CharT ch, const locale& loc );

Проверяет, классифицируется ли данный символ как буква верхнего регистра согласно фасету std::ctype указанной локали.

Параметры

ch - символ
loc - локаль

Возвращаемое значение

Возвращает true, если символ классифицируется как символ верхнего регистра, и false в противном случае.

Возможная реализация

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);
}

Пример

Демонстрирует использование std::isupper() с разными локалями (зависит от ОС).

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

Возможный вывод:

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

См. также

isupper
проверяет, является ли символ символом верхнего регистра
(функция)
iswupper
проверяет, является ли широкий символ символом верхнего регистра
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/isupper

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API