Namespaces
Variants

std:: isalpha

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

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

  • прописные буквы ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • строчные буквы abcdefghijklmnopqrstuvwxyz

В локалях, отличных от "C" , буквенный символ — это символ, для которого std::isupper() или std::islower() возвращают ненулевое значение, или любой другой символ, считающийся буквенным в данной локали. В любом случае, std::iscntrl() , std::isdigit() , std::ispunct() и std::isspace() вернут ноль для этого символа.

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

Содержание

Параметры

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

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

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

Примечания

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

bool my_isalpha(char ch)
{
    return std::isalpha(static_cast<unsigned char>(ch));
}

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

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

Пример

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

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xdf'; // German letter ß in ISO-8859-1
    std::cout << "isalpha(\'\\xdf\', default C locale) returned "
              << std::boolalpha << !!std::isalpha(c) << '\n';
    std::setlocale(LC_ALL, "de_DE.iso88591");
    std::cout << "isalpha(\'\\xdf\', ISO-8859-1 locale) returned "
              << static_cast<bool>(std::isalpha(c)) << '\n';
}

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

isalpha('\xdf', default C locale) returned false
isalpha('\xdf', ISO-8859-1 locale) returned true

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

проверяет, классифицируется ли символ как буквенный в локали
(шаблон функции)
проверяет, является ли широкий символ буквенным
(функция)
**Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, кроме символа тире `–`, который уже является стандартным в русской типографике. Все остальное содержимое: - Числовые значения (33-47) - Код внутри тегов ` ` - Специальные символы и обозначения (`≠0`) - HTML-теги и атрибуты сохранено в оригинальном виде согласно требованиям. **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода - все содержимое состоит из числовых значений, шестнадцатеричных кодов, символов и HTML-тегов, которые согласно инструкциям не подлежат переводу. **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода - все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Кодовых последовательностей в тегах ` ` (не подлежат переводу) - Числовых значений и специальных символов - Символа "–" (тире), который является стандартным знаком пунктуации Единственный потенциально переводимый элемент "–" между тегами ` ` оставлен без изменений, так как в техническом контексте он обычно не переводится. **Примечание:** В данном HTML-фрагменте переводу подлежал только текст "65–70" (который остался без изменений, так как представляет числовой диапазон), а также символ тире "–" между тегами ` `. Остальной текст находится внутри тегов ` `, `
` или `` (которые отсутствуют в данном фрагменте) и не подлежит переводу согласно инструкциям.
**Примечание:** В данном HTML-фрагменте нет текста для перевода, требующего локализации на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Кодовых последовательностей в тегах ` ` (не подлежат переводу согласно инструкции) - Числовых значений и символов (71–90, 0, ≠0) - Буквенных последовательностей в тегах ` ` (GHIJKLMNOP, QRSTUVWXYZ) Все элементы сохранены в оригинальном виде в соответствии с требованиями. **Примечание:** В данном HTML-фрагменте нет текста для перевода, требующего локализации на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Числовых значений и диапазонов (91–96) - Специальных символов и escape-последовательностей в тегах ` ` (не подлежат переводу) - Математических символов (≠0) в тегах ` ` - C++ специфических обозначений Все элементы сохранены в оригинальном виде в соответствии с требованиями. **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода, требующий локализации на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Числовых значений и шестнадцатеричных кодов в тегах ` ` (не подлежат переводу согласно инструкциям) - Символов диапазона (`–`) и математических символов (`≠`) Если бы присутствовал пояснительный текст вне тегов ` `, он был бы переведен на русский язык с сохранением профессионального стиля. **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Числовые значения (103–122) не требуют перевода - Содержимое внутри тегов ` ` сохраняется без изменений согласно инструкциям - Символы `–` и `≠` являются математическими символами, а не текстом для перевода - HTML-теги и атрибуты сохранены в оригинальном виде **Примечание:** В данном 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