Пространства имён
Варианты
Действия

std::isalpha(std::locale)

Материал из cppreference.com
 
 
Библиотека локализации
Локали и фасеты
Локали
Базовые классы категорий фасетов
фасеты ctype
числовые фасеты
фасеты сопоставления
фасеты времени
денежные фасеты
фасеты сообщений
Классификация и преобразование символов
Классификация символов
Преобразование
(C++11/17*)
(C++11/17*)
Фасеты преобразования кода
(C++11/17*)
(C++11/17*)    
(C++11/17*)
Локаль C
 
<tbody> </tbody>
Определено в заголовочном файле <locale>
template< class charT > bool isalpha( charT ch, const locale& loc );

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

Параметры

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

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

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

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

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

Пример

Демонстрирует использование isaplha() с разными локалями (ОС-специфичен).

#include <iostream>
#include <locale>
int main()
{
    const wchar_t c = L'\u042f'; // cyrillic capital letter ya

    std::locale loc1("C");
    std::cout << "isalpha('Я​', C locale) returned "
               << std::boolalpha << std::isalpha(c, loc1) << '\n';

    std::locale loc2("en_US.UTF8");
    std::cout << "isalpha('Я', Unicode locale) returned "
              << std::boolalpha << std::isalpha(c, loc2) << '\n';
}

Вывод:

isalpha('Я​', C locale) returned false
isalpha('Я', Unicode locale) returned true

См. также

проверяет, является ли символ буквенным
(функция) [править]
проверяет, является ли широкий символ буквенным
(функция) [править]