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():
isblank():
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():
Данные функции проверяют, попадает ли символ c (который должен иметь значение unsigned char или EOF) в определённый класс символов согласно указанной локали. Функции без суффикса «_l» выполняют проверку на основе текущей локали.
Функции с суффиксом «_l» выполняют проверку на основе указанного объекта локали locale. Поведение этих функций не определено, если значение locale равно специальному объекту локали LC_GLOBAL_LOCALE (смотрите duplocale(3)) или является некорректным описателем объекта локали.
Далее в списке описаны действия функций без суффикса «_l»; функции с суффиксом «_l» отличаются только использовании объекта локали locale вместо текущей локали.
Функции возвращают ненулевые значения, если проверяемый символ 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)
2017-09-15 | GNU |