Namespaces
Variants

std:: islower

From cppreference.net
Определено в заголовке <cctype>
int islower ( int ch ) ;

Проверяет, классифицируется ли данный символ как символ в нижнем регистре в соответствии с текущей локалью C. В локали по умолчанию "C" , std::islower возвращает ненулевое значение только для букв нижнего регистра ( abcdefghijklmnopqrstuvwxyz ).

Если islower возвращает ненулевое значение, гарантируется, что std::iscntrl , std::isdigit , std::ispunct и std::isspace вернут ноль для того же символа в той же локали C.

Поведение не определено, если значение ch не представимо в виде unsigned char и не равно EOF .

Содержание

Параметры

ch - символ для классификации

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

Ненулевое значение, если символ является строчной буквой, и ноль в противном случае.

Примечания

Как и все остальные функции из <cctype> , поведение std::islower не определено, если значение аргумента не представимо как unsigned char и не равно EOF . Для безопасного использования этих функций с обычными char (или signed char ) аргумент должен быть сначала преобразован в unsigned char :

bool my_islower(char ch)
{
    return std::islower(static_cast<unsigned char>(ch));
}

Аналогично, их не следует напрямую использовать со стандартными алгоритмами, когда типом значения итератора является char или signed char . Вместо этого сначала преобразуйте значение в unsigned char :

int count_lowers(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::islower)         // неправильно
                      // [](int c){ return std::islower(c); }           // неправильно
                      // [](char c){ return std::islower(c); }          // неправильно
                         [](unsigned char c){ return std::islower(c); } // правильно
                        );
}

Пример

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xe5'; // letter å in ISO-8859-1
    std::cout << "islower(\'\\xe5\', default C locale) returned "
              << std::boolalpha << (bool)std::islower(c) << '\n';
    std::setlocale(LC_ALL, "en_GB.iso88591");
    std::cout << "islower(\'\\xe5\', ISO-8859-1 locale) returned "
              << std::boolalpha << (bool)std::islower(c) << '\n';
}

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

islower('\xe5', default C locale) returned false
islower('\xe5', ISO-8859-1 locale) returned true

Смотрите также

проверяет, классифицируется ли символ как строчный в локали
(шаблон функции)
проверяет, является ли широкий символ строчным
(функция)
**Примечание:** В данном HTML-фрагменте нет текста для перевода, требующего локализации на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Числовых значений и диапазонов - Символьных кодов в тегах ` ` (не подлежат переводу) - Специальных символов и математических обозначений Единственный потенциально переводимый элемент - тире (`–`) между значениями, но в данном контексте оно используется как математический символ диапазона и не требует перевода. **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода - все содержимое состоит из числовых значений, шестнадцатеричных кодов, символов и HTML-тегов. Числовые диапазоны, символы и escape-последовательности не подлежат переводу согласно требованиям. **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода на русский язык. Все содержимое состоит из: - HTML тегов и атрибутов (не подлежат переводу) - Кодовых последовательностей в тегах ` ` (не подлежат переводу) - Числовых значений и символов - Специальных символов (тире, математические символы) Единственный потенциально переводимый элемент "–" (тире) уже является корректным для русского языка. **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Числовые значения (65–70) не требуют перевода - Содержимое внутри тегов ` ` сохраняется без изменений - Символы "–" являются разделителями, а не текстом для перевода - Все остальные элементы представляют собой HTML-разметку и числовые значения в таблице **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Числовые диапазоны (71–90) не требуют перевода - Все текстовые элементы находятся внутри тегов ` `, которые согласно инструкции не подлежат переводу - Символы `–` и `≠0` являются математическими обозначениями, а не текстом для перевода - HTML-теги и атрибуты сохранены в оригинальном виде **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода, требующий локализации на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Числовых значений и диапазонов (91–96) - Символьных кодов в тегах ` ` (не подлежат переводу) - Математических символов (≠0) в тегах ` ` (не подлежат переводу) Форматирование полностью сохранено в соответствии с исходным кодом. **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Числовые значения (97–102) не требуют перевода - Содержимое внутри тегов ` ` сохраняется без изменений - Символы "–" являются разделителями диапазонов - Специальные символы "≠0" являются математическими обозначениями Все HTML-теги, атрибуты и форматирование сохранены в оригинальном виде. **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Числовые значения (103–122) не требуют перевода - Содержимое внутри тегов ` ` сохраняется без изменений согласно инструкциям - Символы `–` и `≠` являются математическими символами - Вся остальная информация представлена в виде кодовых последовательностей и числовых значений **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Кодов символов в тегах ` ` (не подлежат переводу) - Числовых значений и символов (не требуют перевода) - Символа "–" (дефис/тире, не требует перевода) Форматирование полностью сохранено в соответствии с требованиями.
Значения ASCII символы

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

десятичное шестнадцатеричное восьмеричное
0–8 \x0 \x8 \0 \10 управляющие коды ( NUL и др.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 табуляция ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 пробельные символы ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 управляющие коды ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 пробел 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33–47 \x21 \x2F \41 \57 !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48–57 \x30 \x39 \60 \71 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58–64 \x3A \x40 \72 \100 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65–70 \x41 \x46 \101 \106 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71–90 \x47 \x5A \107 \132 GHIJKLMNOP
QRSTUVWXYZ
0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91–96 \x5B \x60 \133 \140 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97–102 \x61 \x66 \141 \146 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103–122 \x67 \x7A \147 \172 ghijklmnop
qrstuvwxyz
0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123–126 \x7B \x7E \172 \176 {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 символ удаления ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0