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/w/cpp/locale/isupper

Spec-Zone.ru

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