ИМЯ

isalnum, isalpha, isascii, isblank, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit, isalnum_l, isalpha_l, isascii_l, isblank_l, iscntrl_l, isdigit_l, isgraph_l, islower_l, isprint_l, ispunct_l, isspace_l, isupper_l, isxdigit_l - функции классификации символов

LIBRARY

Standard C library ( libc, -lc)

СИНТАКСИС

#include <ctype.h>
int isalnum(int c);
int isalpha(int c);
int iscntrl(int c);
int isdigit(int c);
int isgraph(int c);
int islower(int c);
int isprint(int c);
int ispunct(int c);
int isspace(int c);
int isupper(int c);
int isxdigit(int c);
int isascii(int c);
int isblank(int c);
int isalnum_l(int c, locale_t locale);
int isalpha_l(int c, locale_t locale);
int isblank_l(int c, locale_t locale);
int iscntrl_l(int c, locale_t locale);
int isdigit_l(int c, locale_t locale);
int isgraph_l(int c, locale_t locale);
int islower_l(int c, locale_t locale);
int isprint_l(int c, locale_t locale);
int ispunct_l(int c, locale_t locale);
int isspace_l(int c, locale_t locale);
int isupper_l(int c, locale_t locale);
int isxdigit_l(int c, locale_t locale);
int isascii_l(int c, locale_t locale);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
isascii():
    _XOPEN_SOURCE
        || /* glibc >= 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _SVID_SOURCE
isblank():
    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
isalnum_l(), isalpha_l(), isblank_l(), iscntrl_l(), isdigit_l(), isgraph_l(), islower_l(), isprint_l(), ispunct_l(), isspace_l(), isupper_l(), isxdigit_l():
    Since glibc 2.10:
        _XOPEN_SOURCE >= 700
    Before glibc 2.10:
        _GNU_SOURCE
isascii_l():
    Since glibc 2.10:
        _XOPEN_SOURCE >= 700 && (_SVID_SOURCE || _BSD_SOURCE)
    Before glibc 2.10:
        _GNU_SOURCE

ОПИСАНИЕ

Данные функции проверяют, попадает ли символ c (который должен иметь значение unsigned char или EOF) в определённый класс символов согласно указанной локали. Функции без суффикса «_l» выполняют проверку на основе текущей локали.
Функции с суффиксом «_l» выполняют проверку на основе указанного объекта локали locale. Поведение этих функций не определено, если значение locale равно специальному объекту локали LC_GLOBAL_LOCALE (смотрите duplocale(3)) или является некорректным описателем объекта локали.
Далее в списке описаны действия функций без суффикса «_l»; функции с суффиксом «_l» отличаются только использовании объекта локали locale вместо текущей локали.
isalnum()
Проверяет символ на принадлежность к число-буквенным символам; вызов эквивалентен (isalpha(c) || isdigit(c)).
isalpha()
checks for an alphabetic character; in the standard "C" locale, it is equivalent to (isupper(c) || islower(c)). In some locales, there may be additional characters for which isalpha() is true—letters which are neither uppercase nor lowercase.
isascii()
Проверяет, является ли c 7-битным значением unsigned char, которое попадает в таблицу символов ASCII.
isblank()
Проверяет, является ли символ пробельным (blank); то есть пробелом или символом табуляции.
iscntrl()
Проверяет, является ли символ управляющим.
isdigit()
Проверяет, является ли символ цифрой (от 0 до 9).
isgraph()
Проверяет, является ли символ печатным (но не пробельным).
islower()
Проверяет, является ли символ символом нижнего регистра.
isprint()
Проверяет, является ли символ печатным (включая пробельный).
ispunct()
Проверяет, является ли символ печатным; он не должен быть пробельным или цифро-буквенным символом.
isspace()
checks for white-space characters. In the "C" and "POSIX" locales, these are: space, form-feed ( '\f'), newline ('\n'), carriage return ( '\r'), horizontal tab ('\t'), and vertical tab ( '\v').
isupper()
Проверяет, является ли символ символом верхнего регистра.
isxdigit()
Проверяет, является ли символ шестнадцатеричной цифрой, т.е. одной из
 
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Функции возвращают ненулевые значения, если проверяемый символ c попадает в тестируемый класс символов, в противном случае возвращается 0.

ВЕРСИИ

Функции isalnum_l(), isalpha_l(), isblank_l(), iscntrl_l(), isdigit_l(), isgraph_l(), islower_l(), isprint_l(), ispunct_l(), isspace_l(), isupper_l(), isxdigit_l() и isascii_l() доступны в glibc с версии 2.3.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).
Интерфейс Атрибут Значение
isalnum(), isalpha(), isascii(), isblank(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit() Безвредность в нитях MT-Safe
 

СТАНДАРТЫ

POSIX.1-2001 specifies isalnum(), isalpha(), isblank(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), and isxdigit(), and also isascii() (as an XSI extension). C99 specifies all of the preceding functions, except isascii().
В POSIX.1-2008 функция toascii() помечена как устаревшая с примечанием, что её нельзя использовать в локализованных приложениях.
В POSIX.1-2008 определены isalnum_l(), isalpha_l(), isblank_l(), iscntrl_l(), isdigit_l(), isgraph_l(), islower_l(), isprint_l(), ispunct_l(), isspace_l(), isupper_l() и isxdigit_l().
Функция isascii_l() является расширением GNU.

ЗАМЕЧАНИЯ

Стандартами требуется, что аргумент c этих функций равнялся EOF или значению, которое представимо типом unsigned char. Если аргумент c имеет тип char, то он должен приводиться к unsigned char как в следующем примере:

char c;
...
res = toupper((unsigned char) c);

Это необходимо, так как char может быть эквивалентен signed char, и если у байта установлен старший знаковый бит, то он учитывается при приведении к int и байт превращается в значение, выходящее за границу unsigned char.
Отношение символов к какому-либо классу зависит от локали. Например, isupper() не распознает A-umlaut (Ä) как букву верхнего регистра в локали  C по умолчанию.

СМ. ТАКЖЕ

iswalnum(3), iswalpha(3), iswblank(3), iswcntrl(3), iswdigit(3), iswgraph(3), iswlower(3), iswprint(3), iswpunct(3), iswspace(3), iswupper(3), iswxdigit(3), newlocale(3), setlocale(3), toascii(3), tolower(3), toupper(3), uselocale(3), ascii(7), locale(7)

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Azamat Hackimov <[email protected]>, Dmitriy S. Seregin <[email protected]>, Yuri Kozlov <[email protected]> и Иван Павлов <[email protected]>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на [email protected]