Что такое код iscntrl isxdigit


Что такое код iscntrl isxdigit

НАЗВАНИЕ
ctype: isalpha, isupper, islower, isdigit, isxdigit, isalnum, isspace, ispunct, isprint, isgraph, iscntrl, isascii — классификация символов

ОПИСАНИЕ
Перечисленные выше макросы классифицируют целые значения, являющиеся кодами символов, путем просмотра таблицы. Каждый из макросов является предикатом, возвращающим ненулевое значение как истину, и 0 — как ложь. Макрос isascii определен для любого целого значения. Остальные определены, только если условие isascii истинно, а также для единственного значения, не являющегося кодом ASCII, а именно EOF [-1; см. stdio(3S)].

Ниже перечислены условия, проверяемые каждым из макросов:

isalpha c буква.
isupper c большая буква.
islower c малая буква.
isdigit c цифра: [0-9].
isxdigitc шестнадцатеричная цифра: [0-9], [A-F] или [a-f].
isalnum c алфавитно-цифровой символ (буква или цифра).
isspace c пробел, табуляция, возврат каретки, перевод строки, вертикальная табуляция или символ перехода к новой странице.
ispunct c знак пунктуации (то есть не управляющий и не алфавитно-цифровой символ).
isprint c печатный символ; коды таких символов располагаются в диапазоне от 040 (пробел) до 0176 (тильда).
isgraph c печатный символ, но не пробел.
iscntrl c символ удаления (0177) или обычный управляющий символ (код меньше 040).
isascii c является ASCII-символом (код меньше 0200).

ДИАГНОСТИКА
Если аргумент какого-либо из перечисленных макросов не принадлежит диапазону допустимых значений, результат непредсказуем.

Безопасно ли вызывать функции из с аргументами char?

Язык программирования C говорит, что функции из следуют общему требованию:

Во всех случаях аргументом является int , значение которого должно быть представлено как unsigned char или должно быть равно значению макроса EOF . Если аргумент имеет любое другое значение, поведение — undefined.

Это означает, что следующий код небезопасен:

Если этот код выполняется в реализации, где char имеет то же значение, что и signed char , и в строке есть символ с отрицательным значением, этот код вызывает поведение undefined. Правильная версия:

Тем не менее, я вижу много примеров на С++, которые не заботятся об этой возможности поведения undefined. Так есть ли что-нибудь в стандарте С++, гарантирующем, что приведенный выше код не приведет к поведению undefined или все примеры неверны?

[Дополнительные ключевые слова: ctype cctype isalnum isalpha isblank iscntrl isdigit isgraph islowwer isprint ispunct isspace isperper isxdigit tolower]

Для того, что стоит, компиляторы Solaris Studio (используя stlport4 ) являются одним из таких комплектов компиляторов, которые приводят к неожиданному результату. Компиляция и запуск этого:

Конечно, это поведение описано в стандарте С++, но это определенно удивительно.

EDIT: поскольку было указано, что приведенная выше версия содержала поведение undefined в попытке назначить char ch = ‘\xa1’ из-за переполнения целого числа, здесь версия, которая позволяет избежать этого и по-прежнему сохраняет тот же результат:

И это все еще печатает 8 на моей Solaris VM:

ИЗМЕНИТЬ 2: И здесь программа, которая в противном случае выглядела бы разумно, но дает неожиданный результат из-за UB при использовании std::isspace() :

И на моей машине Solaris:

Обратите внимание, что в зависимости от того, как вы переставляете эту программу, вы, вероятно, получите ожидаемый результат двух пробельных символов; то есть почти наверняка будет какая-то оптимизация компилятора, в которой используется этот UB, чтобы быстрее получить неверный результат.

Вы могли бы вообразить, что это кусает вас в лицо, если вы, например, пытаетесь маркировать строку UTF-8, ища (не многобайтные) символы пробела в строке. Такая программа будет корректно вести себя при литье str[i] в unsigned char .

Иногда большинство людей ошибаются. Я думаю, что так здесь. Сказав, что нет ничего, чтобы остановить стандартную реализацию библиотеки, определяющую поведение, которое ожидают большинство людей. Так что, может быть, поэтому большинство людей не заботятся, так как они никогда не видели ошибку, вызванную этой ошибкой.

История, относящаяся к типу char , состоит в том, что она первоначально была типом, используемым для описания 7-битных символов ASCII. В то же время у C не было отдельного 8-битного целочисленного типа. Поэтому в предстандартные дни восьмидесятых некоторые компиляторы сделали char unsigned, так как нет смысла иметь отрицательные индексы в таблице символов, в то время как другие компиляторы заключили char , чтобы сделать его совместимым со всеми другие целые типы.

Когда пришло время стандартизации C, обе версии существовали. К сожалению, комитет решил оставить это так, оставив решение компилятору. Вместо этого они добавили два других типа: signed char и unsigned char . signed char является частью целочисленных типов со знаком, unsigned char является частью целочисленных типов без знака, а char не является частью ни одного, хотя он должен иметь то же представление, что и signed char или unsigned char . (Все это описано в C11 6.2.5)

Примечательно, что char никогда не было ничего, кроме 8 бит во всех известных реализациях, за исключением некоторых экзотических нечетных DSP, которые работали с 16-битными байтами. Когда использовались «расширенные» таблицы символов, либо реализация была изменена с 7 до 8 бит символов, либо была использована wchar_t . Обратите внимание, что wchar_t был на языке C с самого начала, поэтому предположение, что char было в какой-то момент использовано для таких вещей, как UTF8, вероятно, неверно (хотя теоретически возможно).

Теперь, если char подписан, и вы храните в нем больше, чем CHAR_MAX или меньше CHAR_MIN , вы вызываете поведение undefined в соответствии с C11 6.5 §5. Период. Поэтому, если у вас есть массив char , и любой элемент внутри него нарушает границы типа, у вас уже есть поведение undefined. Несмотря на то, что типы символов имеют ловушки, поведение undefined может привести к неправильному использованию кода, например, к неправильной оптимизации.

Функции ctype.h позволяют EOF в качестве параметра, но в противном случае должны вести себя так, как если бы работали с типами символов, даже если параметр int разрешает EOF . Текст из 7.4 §1 в основном говорит о том, что «если вы передадите эту случайную случайную int , которая не является ни тем же представлением, что и char, ни EOF, поведение undefined» .

Но если вы передадите char , где вы уже вышли с переполнением/нижним потоком со знаком целых чисел, у вас уже есть поведение undefined даже до вызова функции — это не имеет ничего общего с функциями ctype.h или любой другой функцией, Таким образом, ваше предположение о том, что функция «верхняя» небезопасна, неверна — этот код ничем не отличается от любого другого кода с использованием типа char .

Пример поведения undefined, вызванного указанными ограничениями ctype.h в 7.4, скорее будет чем-то вроде toupper(666) .

Что такое код iscntrl isxdigit

Скидка 25% на все тарифы хостинга по промокоду STDCITF

CTYPE(3C)

НАЗВАНИЕ
ctype: isalpha, isupper, islower, isdigit, isxdigit, isalnum, isspace, ispunct, isprint, isgraph, iscntrl, isascii — классификация символов

ОПИСАНИЕ
Перечисленные выше макросы классифицируют целые значения, являющиеся кодами символов, путем просмотра таблицы. Каждый из макросов является предикатом, возвращающим ненулевое значение как истину, и 0 — как ложь. Макрос isascii определен для любого целого значения. Остальные определены, только если условие isascii истинно, а также для единственного значения, не являющегося кодом ASCII, а именно EOF [-1; см. stdio(3S)].

Ниже перечислены условия, проверяемые каждым из макросов:

isalpha c буква.
isupper c большая буква.
islower c малая буква.
isdigit c цифра: [0-9].
isxdigitc шестнадцатеричная цифра: [0-9], [A-F] или [a-f].
isalnum c алфавитно-цифровой символ (буква или цифра).
isspace c пробел, табуляция, возврат каретки, перевод строки, вертикальная табуляция или символ перехода к новой странице.
ispunct c знак пунктуации (то есть не управляющий и не алфавитно-цифровой символ).
isprint c печатный символ; коды таких символов располагаются в диапазоне от 040 (пробел) до 0176 (тильда).
isgraph c печатный символ, но не пробел.
iscntrl c символ удаления (0177) или обычный управляющий символ (код меньше 040).
isascii c является ASCII-символом (код меньше 0200).

ДИАГНОСТИКА
Если аргумент какого-либо из перечисленных макросов не принадлежит диапазону допустимых значений, результат непредсказуем.

IntlChar::iscntrl

IntlChar::iscntrl — Проверить, является ли символ управляющим

Описание

Проверяет, является ли символ управляющим.

Управляющие символы::

  • 8-битные управляющие символы ISO (U+0000..U+001f и U+007f..U+009f)
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR (Cc)
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR (Cf)
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR (Zl)
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR (Zp)

Список параметров

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например «\u<2603>«)

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

Возвращает TRUE , если codepoint является управляющим, FALSE — если нет.

Примеры

Пример #1 Тестирование различных способов задания

Результат выполнения данного примера:

Смотрите также

  • IntlChar::isprint() — Проверяет, является ли симвом отображаемым
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT

Что такое код iscntrl isxdigit

Для творческих людей одним из актуальных вопросов является уникальность и эксклюзивность их творчества, будь то мелодия, стихи, фонограмма или музыкальный клип.

КАК ДОКАЗАТЬ УНИКАЛЬНОСТЬ СВОИХ ПРОИЗВЕДЕНИЙ И ЗАЩИТИТЬ СЕБЯ ОТ ПЛАГИАТА?

В этом может помочь Международная организация по стандартизации — ISO, утверждающая всемирные стандарты в области Электронного управления авторскими и смежными правами.

На сегодняшний день уже утверждены и действуют следующие мировые стандарты:

  • ISWC — Международный стандарт кода для музыкальных произведений.
  • ISRC — Международный стандарт кода для звукозаписей.
  • ISMN — Международный стандарт музыкального номера.

В стадии утверждения сейчас находятся такие стандарты:

  • ISAN — Международный стандарт аудиовизуального номера.
  • ISTC — Международный стандарт кода для текстовых произведений.

Сегодня мы остановимся на первых двух кодах из этого перечня – ISWC и ISRC.

ISWC (International Standard Musical Work Code) — этот код определяет музыкальную работу, как уникальное нематериальное произведение. Такое произведение может быть результатом творчества одного или нескольких людей, независимо от их статуса авторских прав, распространения или соглашений, которые охватывают это произведение.

КОД ISWC НАПРЯМУЮ СВЯЗАН С КОДОМ ISRC

ISWC код присваивается исключительно произведению (мелодия или песня), и если автор и композитор планирует сделать запись фонограммы своего произведения или снять музыкальный клип, потребуется уже другой код — ISRC.

ISRC (International Standard Recording Code) – это международный стандартный код аудио или видео записи, который определяет их уникальность. Он присваивается первому собственнику смежных прав на фонограмму и идентифицирует звуковую запись на протяжении всего периода ее существования.

При этом, важный момент, о котором не следует забывать — код присваивает уникальность одной конкретной записи (оригиналу песни), поэтому ремиксы одной и той же песни требуют своего собственного кода ISRC.

ISRC код стал неотъемлемым атрибутом музыкальной индустрии. С его помощью можно легко вычислить правообладателя той или иной композиции в течение часа. С помощью ISRC кода музыканты могут защитить свою музыку от посягательств, в соответствии со строгими стандартами международной музыкальной индустрии.

Получить код ISRC могут как частные, так и юридические лица. Присвоение кода не происходит автоматически, для этого необходимо отправить анкету-заявку в национальное агентство ISRC.

Что дает код ISRC правообладателям? Это возможность отслеживать использование своих музыкальных произведений по всему миру. Например, иностранные радиостанции в отчетах об использованной музыке указывают именно ISRC код, таким образом, использование трека с присвоенным кодом можно легко отследить, в то время как, композиция без кода легко «потеряется», в том числе и из-за колебаний в транслитерации названия. +

Diplom Consult.ru

НазначениеМакрос классификации символов.

int isxdigit(int ch);

Замечанияisxdigit макрос, который классифицирует целые

значения кода ASCII просмотром таблицы. Функция

возвращает не ноль в случае истины и 0 — в слу-

isxdigit(ch) определена, когда isascii(ch) есть

истина или когда ch является символом EOF.

Возвращаемоеisxdigit вернет ненулевое значение, если ch-

значениешестнадцатиричная цифра (‘0’-‘9’, ‘A’-‘F’,

Переносимостьisxdigit доступна в UNIX системах и совместима

НазначениеПреобразует целое в строку.

Синтаксис char *itoa(int value, char *string,int radix);

Замечанияitoa преобразует value в заканчивающуюся нулем

строку и заносят результат в string. Для itoa

тип value — целое.

radix определяет основание, используемое в

превращаемой value, она должна быть от 2 до 36

(включительно). Если value отрицательно и radix

=10, первый символ строки — знак минуса (-).

Замечание: место, выделенное для string, должно

быть достаточно большим для того, чтобы помес-

тить возвращаемую строку, включая 0 в конце

(\0). itoa может возвращать до 17 байт;

Возвращаемоеitoa возвращает указатель на string, ошибка

Смотри такжеltoa, utoa

НазначениеПроверяет нажатие клавиши.

Замечанияkbhit проверяет, является ли клавиша сейчас

доступной. Любая доступная клавиша может быть

получена через getch или getche.

ВозвращаемоеЕсли клавиша доступна, возвращается ненулевое

значениезначение, иначе — 0.

Смотри такжеgetch, getche

НазначениеВыход с оставлением программы резидентной

Синтаксис void keep(int status, int size);

Замечанияkeep возвращает управление в MS-DOS с состояни-

ем завершения status. Текущая программа, одна-

ко, остается резидентной. Ей оставляется size

разделов памяти, а остальная память освобожда-

keep может быть использована при установки

программы TSR. keep использует функцию DOS

ПереносимостьУникальна для MS-DOS.

Смотри такжеabort, exit

НазначениеДает абсолютное значение числа типа long.

Синтаксис long labs(long n);

Замечанияlabs вычисляет абсолютное значение n, типа long

integer (длинное целое).

Возвращаемоеlabs при успешном выполнении возвращает

значениеабсолютное значение n. Ошибки не возвращает.

Переносимостьlabs доступна в системах UNIX и совместима с

Смотри такжеabs, cabs, fabs

НазначениеВычисляет значение value x 2.

Синтаксис double ldexp(double value,int exp);

Замечания ldexp — вычисляет value*2**exp.

ВозвращаемоеПри успешном выполнении ldexp возвращает х, где

Обработка ошибок для данной функции может быть

модифицирована с помощью функции matherr.


Переносимостьldexp доступна в системах UNIX и совместима с

Смотри такжеexp, frexp, modf

НазначениеДелит два длинных целых, возвращая частное и

ldiv_t ldiv(long lnumber, long ldenom);

Замечанияldiv делит два длинных целых и возвращает как

тип ldiv_t частное и остаток. lnumer и ldenom

являются, соответственно, делимым и делителем.

Тип ldiv_t является структурой, описанной (с

помощью typedef) в stdlib.h следующим образом:

long quot; /* частное */

long rem; /* остаток */

Возвращаемоеldiv возвращает структуру, элементы которой

значениеявляются частным (quot) и остатком (rem).

Переносимостьldiv совместима с ANSI Си.

lx = ldiv(100000L, 30000L);

printf(«100000 div 30000 = %ld остаток %ld\n»,

void *lfind(const void *key, const void *base,

size_t *nelem, size_t width,

int (*fcmp)(const void *, const void *));

Замечанияlfind выполняет линейный поиск в таблице. Аргу-

мент fcmp указывает на написанную пользователем

— base указывает на базис (0-ой элемент) поис-

— nelem указывает на целое, хранящее количество

элементов в таблице.

— width содержит число байт в каждом элементе.

— key указывает на искомый элемент («поисковый

Функция сравнения *femp вызывается с двумя ар-

гументами — elem1 и elem2. Каждый из этих аргу-

ментов указывает на элемент сравнения. Функция

сравнения сравнивает эти элементы и возвращает

целое число, базирующееся на результате сравне-

ния. Обычно elem1 соответствует аргументу key,

а elem2 является указателем на элемент просмат-

Возвращаемоеlfind возвращает адрес первого элемента

значениетаблицы, удовлетворяющего ключу поиска. Если

такой элемент не найден, lfind вернет 0.

Смотри также bsearch, lsearch

НазначениеВычерчивает линию между двумя заданными точками

void far line(int x0, int y0, int x1, int y1);

Замечанияline вычерчивает линию текущего цвета, исполь-

зуя при этом текущие стиль и толщину линий.

line вычерчивает линию между двумя заданными

точками (x0,y0) и (x1,y1), причем текущая пози-

ция не изменяется.

ПереносимостьДанная функция работает только на IBM PC и сов-

местимых моделях при наличии соответствующих

Смотри также linerel, lineto, setcolor, setlinesettings,

iOS Manual Pages

  • Table of Contents
  • Download Sample Code
ADC Home>Reference Library> Reference > Mac OS X > Mac OS X Man Pages

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).

Sending feedback…

We’re sorry, an error has occurred.

Please try submitting your feedback later.

Thank you for providing feedback!

Your input helps improve our developer documentation.

Безопасно ли вызывать функции из с аргументами char?

Язык программирования C говорит, что функции из следуют общему требованию:

Во всех случаях аргументом является int , значение которого должно быть представлено как unsigned char или должно быть равно значению макроса EOF . Если аргумент имеет любое другое значение, поведение — undefined.

Это означает, что следующий код небезопасен:

Если этот код выполняется в реализации, где char имеет то же значение, что и signed char , и в строке есть символ с отрицательным значением, этот код вызывает поведение undefined. Правильная версия:

Тем не менее, я вижу много примеров на С++, которые не заботятся об этой возможности поведения undefined. Так есть ли что-нибудь в стандарте С++, гарантирующем, что приведенный выше код не приведет к поведению undefined или все примеры неверны?

[Дополнительные ключевые слова: ctype cctype isalnum isalpha isblank iscntrl isdigit isgraph islowwer isprint ispunct isspace isperper isxdigit tolower]

Для того, что стоит, компиляторы Solaris Studio (используя stlport4 ) являются одним из таких комплектов компиляторов, которые приводят к неожиданному результату. Компиляция и запуск этого:

Конечно, это поведение описано в стандарте С++, но это определенно удивительно.

EDIT: поскольку было указано, что приведенная выше версия содержала поведение undefined в попытке назначить char ch = ‘\xa1’ из-за переполнения целого числа, здесь версия, которая позволяет избежать этого и по-прежнему сохраняет тот же результат:

И это все еще печатает 8 на моей Solaris VM:

ИЗМЕНИТЬ 2: И здесь программа, которая в противном случае выглядела бы разумно, но дает неожиданный результат из-за UB при использовании std::isspace() :

И на моей машине Solaris:

Обратите внимание, что в зависимости от того, как вы переставляете эту программу, вы, вероятно, получите ожидаемый результат двух пробельных символов; то есть почти наверняка будет какая-то оптимизация компилятора, в которой используется этот UB, чтобы быстрее получить неверный результат.

Вы могли бы вообразить, что это кусает вас в лицо, если вы, например, пытаетесь маркировать строку UTF-8, ища (не многобайтные) символы пробела в строке. Такая программа будет корректно вести себя при литье str[i] в unsigned char .

Иногда большинство людей ошибаются. Я думаю, что так здесь. Сказав, что нет ничего, чтобы остановить стандартную реализацию библиотеки, определяющую поведение, которое ожидают большинство людей. Так что, может быть, поэтому большинство людей не заботятся, так как они никогда не видели ошибку, вызванную этой ошибкой.

История, относящаяся к типу char , состоит в том, что она первоначально была типом, используемым для описания 7-битных символов ASCII. В то же время у C не было отдельного 8-битного целочисленного типа. Поэтому в предстандартные дни восьмидесятых некоторые компиляторы сделали char unsigned, так как нет смысла иметь отрицательные индексы в таблице символов, в то время как другие компиляторы заключили char , чтобы сделать его совместимым со всеми другие целые типы.

Когда пришло время стандартизации C, обе версии существовали. К сожалению, комитет решил оставить это так, оставив решение компилятору. Вместо этого они добавили два других типа: signed char и unsigned char . signed char является частью целочисленных типов со знаком, unsigned char является частью целочисленных типов без знака, а char не является частью ни одного, хотя он должен иметь то же представление, что и signed char или unsigned char . (Все это описано в C11 6.2.5)

Примечательно, что char никогда не было ничего, кроме 8 бит во всех известных реализациях, за исключением некоторых экзотических нечетных DSP, которые работали с 16-битными байтами. Когда использовались «расширенные» таблицы символов, либо реализация была изменена с 7 до 8 бит символов, либо была использована wchar_t . Обратите внимание, что wchar_t был на языке C с самого начала, поэтому предположение, что char было в какой-то момент использовано для таких вещей, как UTF8, вероятно, неверно (хотя теоретически возможно).

Теперь, если char подписан, и вы храните в нем больше, чем CHAR_MAX или меньше CHAR_MIN , вы вызываете поведение undefined в соответствии с C11 6.5 §5. Период. Поэтому, если у вас есть массив char , и любой элемент внутри него нарушает границы типа, у вас уже есть поведение undefined. Несмотря на то, что типы символов имеют ловушки, поведение undefined может привести к неправильному использованию кода, например, к неправильной оптимизации.

Функции ctype.h позволяют EOF в качестве параметра, но в противном случае должны вести себя так, как если бы работали с типами символов, даже если параметр int разрешает EOF . Текст из 7.4 §1 в основном говорит о том, что «если вы передадите эту случайную случайную int , которая не является ни тем же представлением, что и char, ни EOF, поведение undefined» .

Но если вы передадите char , где вы уже вышли с переполнением/нижним потоком со знаком целых чисел, у вас уже есть поведение undefined даже до вызова функции — это не имеет ничего общего с функциями ctype.h или любой другой функцией, Таким образом, ваше предположение о том, что функция «верхняя» небезопасна, неверна — этот код ничем не отличается от любого другого кода с использованием типа char .

Пример поведения undefined, вызванного указанными ограничениями ctype.h в 7.4, скорее будет чем-то вроде toupper(666) .

Что такое код iscntrl isxdigit

НАЗВАНИЕ
ctype: isalpha, isupper, islower, isdigit, isxdigit, isalnum, isspace, ispunct, isprint, isgraph, iscntrl, isascii — классификация символов

ОПИСАНИЕ
Перечисленные выше макросы классифицируют целые значения, являющиеся кодами символов, путем просмотра таблицы. Каждый из макросов является предикатом, возвращающим ненулевое значение как истину, и 0 — как ложь. Макрос isascii определен для любого целого значения. Остальные определены, только если условие isascii истинно, а также для единственного значения, не являющегося кодом ASCII, а именно EOF [-1; см. stdio(3S)].

Ниже перечислены условия, проверяемые каждым из макросов:

isalpha c буква.
isupper c большая буква.
islower c малая буква.
isdigit c цифра: [0-9].
isxdigitc шестнадцатеричная цифра: [0-9], [A-F] или [a-f].
isalnum c алфавитно-цифровой символ (буква или цифра).
isspace c пробел, табуляция, возврат каретки, перевод строки, вертикальная табуляция или символ перехода к новой странице.
ispunct c знак пунктуации (то есть не управляющий и не алфавитно-цифровой символ).
isprint c печатный символ; коды таких символов располагаются в диапазоне от 040 (пробел) до 0176 (тильда).
isgraph c печатный символ, но не пробел.
iscntrl c символ удаления (0177) или обычный управляющий символ (код меньше 040).
isascii c является ASCII-символом (код меньше 0200).

ДИАГНОСТИКА
Если аргумент какого-либо из перечисленных макросов не принадлежит диапазону допустимых значений, результат непредсказуем.

Что такое код iscntrl isxdigit

int isalpha(int c );
int isupper(int c );
int islower(int c );
int isdigit(int c );
int isxdigit(int c );
int isalnum(int c );
int isspace(int c );
int ispunct(int c );
int isprint(int c );
int isgraph(int c );
int iscntrl(int c );
int isascii(int c );

DESCRIPTION

These macros classify character-coded integer values. Each is a predicate returning non-zero for true, for false. The behavior of these macros, except isascii() , is affected by the current locale (see setlocale(3C)). To modify the behavior, change the LC_TYPE category in setlocale() , that is, setlocale(LC_CTYPE, newlocale ). In the «C» locale, or in a locale where character type information is not defined, characters are classified according to the rules of the US-ASCII 7-bit coded character set.

The macro isascii() is defined on all integer values; the rest are defined only where the argument is an int, the value of which is representable as an unsigned char, or EOF, which is defined by the header and represents end-of-file.

Functions exist for all the macros defined below. To get the function form, the macro name must be undefined (for example, #undef isdigit).

For macros described with Default and Standard-conforming versions, standard-conforming behavior will be provided for standard-conforming applications (see standards(5)) and for applications that define __XPG4_CHAR_CLASS__ before including .

Default

Tests for any character for which isupper() or islower() is true.

Standard-conforming

Tests for any character for which isupper() or islower() is true, or any character that is one of the current locale-defined set of characters for which none of iscntrl() , isdigit() , ispunct() , or isspace() is true. In «C» locale, isalpha() returns true only for the characters for which isupper() or islower() is true.

Tests for any character that is an upper-case letter or is one of the current locale-defined set of characters for which none of iscntrl() , isdigit() , ispunct() , isspace() , or islower() is true. In the «C» locale, isupper() returns true only for the characters defined as upper-case ASCII characters.

Tests for any character that is a lower-case letter or is one of the current locale-defined set of characters for which none of iscntrl() , isdigit() , ispunct() , isspace() , or isupper() is true. In the «C» locale, islower() returns true only for the characters defined as lower-case ASCII characters.

Tests for any decimal-digit character.

Default

Tests for any hexadecimal-digit character ([0-9], [A-F], or [a-f]).

Standard-conforming

Tests for any hexadecimal-digit character ([0-9], [A-F], or [a-f] or the current locale-defined sets of characters representing the hexadecimal digits 10 to 15 inclusive). In the «C» locale, only

0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f

Tests for any character for which isalpha() or isdigit() is true (letter or digit).

Tests for any space, tab, carriage-return, newline, vertical-tab or form-feed (standard white-space characters) or for one of the current locale-defined set of characters for which isalnum() is false. In the C locale, isspace() returns true only for the standard white-space characters.

Tests for any printing character which is neither a space (» «) nor a character for which isalnum() or iscntrl() is true.

Default

Tests for any character for which ispunct() , isupper() , islower() , isdigit() , and the space character (» «) is true.

Standard-conforming

Tests for any character for which iscntrl() is false, and isalnum() , isgraph() , ispunct() , the space character (» «), and the characters in the current locale-defined «print» class are true.

Default

Tests for any character for which ispunct() , isupper() , islower() , and isdigit() is true.

Standard-conforming

Tests for any character for which isalnum() and ispunct() are true, or any character in the current locale-defined «graph» class which is neither a space (» «) nor a character for which iscntrl() is true.

Tests for any «control character» as defined by the character set.

Tests for any ASCII character, code between and 0177 inclusive.

RETURN VALUES

If the argument to any of the character handling macros is not in the domain of the function, the result is undefined. Otherwise, the macro/function will return non-zero if the classification is TRUE, and for FALSE.

USAGE

The isdigit() , isxdigit() , islower() , isupper() , isalpha() , isalnum() , isspace() , iscntrl() , ispunct() , isprint() , isgraph() , and isascii() macros can be used safely in multithreaded applications, as long as setlocale(3C) is not being called to change the locale.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

Илон Маск рекомендует:  Что такое код lr(k) грамматики
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL