Scroll to navigation

isalpha(3) Library Functions Manual 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 - функции классификации символов

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 вместо текущей локали.

Проверяет символ на принадлежность к число-буквенным символам; вызов эквивалентен (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)

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан 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 декабря 2022 г. Linux man-pages 6.02