Scroll to navigation

ISALPHA(3) Руководство программиста Linux ISALPHA(3)

ИМЯ

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 - функции классификации символов

СИНТАКСИС

#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():

Начиная с glibc 2.10:
_XOPEN_SOURCE >= 700
До glibc 2.10:
_GNU_SOURCE

isascii_l():

Начиная с glibc 2.10:
_XOPEN_SOURCE >= 700 && (_SVID_SOURCE || _BSD_SOURCE)
До glibc 2.10:
_GNU_SOURCE

ОПИСАНИЕ

Данные функции проверяют, попадает ли символ c (который должен иметь значение unsigned char или EOF) в определённый класс символов согласно указанной локали. Функции без суффикса «_l» выполняют проверку на основе текущей локали.

Функции с суффиксом «_l» выполняют проверку на основе указанного объекта локали locale. Поведение этих функций не определено, если значение locale равно специальному объекту локали LC_GLOBAL_LOCALE (смотрите duplocale(3)) или является некорректным описателем объекта локали.

Далее в списке описаны действия функций без суффикса «_l»; функции с суффиксом «_l» отличаются только использовании объекта локали locale вместо текущей локали.

Проверяет символ на принадлежность к число-буквенным символам; вызов эквивалентен (isalpha(c) || isdigit(c)).
Проверяет символ на принадлежность к алфавитным символам; в стандартной локали «C» это эквивалентно (isupper(c) || islower(c)). В некоторых локалях могут существовать дополнительные символы, для которых isalpha() верно — буквы могут не находиться ни в верхнем, ни в нижнем регистре.
Проверяет, является ли c 7-битным значением unsigned char, которое попадает в таблицу символов ASCII.
Проверяет, является ли символ пробельным (blank); то есть пробелом или символом табуляции.
Проверяет, является ли символ управляющим.
Проверяет, является ли символ цифрой (от 0 до 9).
Проверяет, является ли символ печатным (но не пробельным).
Проверяет, является ли символ символом нижнего регистра.
Проверяет, является ли символ печатным (включая пробельный).
Проверяет, является ли символ печатным; он не должен быть пробельным или цифро-буквенным символом.
Проверяет, являются ли символы не отображаемыми. В локалях «C» и «POSIX» таковыми являются: пробел, символ перевода страницы («\f»), символ новой строки («\n»), символ перевода каретки («\r»), символ горизонтальной табуляции («\t») и символ вертикальной табуляции («\v»).
Проверяет, является ли символ символом верхнего регистра.
Проверяет, является ли символ шестнадцатеричной цифрой, т.е. одной из
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

СООТВЕТСТВИЕ СТАНДАРТАМ

В C89 определены isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper() и isxdigit(), но отсутствуют isascii() и isblank(). В POSIX.1-2001 также определены эти функции, а также isascii() (как расширение XSI) и isblank(). В C99 определены все перечисленные ранее функции кроме 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)

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

15 сентября 2017 г. GNU