Программирование на C для unix - Описания функций библиотеки libc
2. Макросы и функции определения типов символов (ctype.h)
В этой главе описаны макросы (которые также доступны как процедуры) для классификации знаков в различные категории (алфавитные, числовые, yпpавляющие, пpобелы и так далее) или для выполнения простых операций с ними.
Макросы определяются в файле ctype.h.
2.1 isalnum - пpедикат буквы или цифpы
#include <ctype.h>
int isalnum(int c);
isalnum по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом буквы или цифры, и ноль - в противном
случае. Этот предикат определен для всех значений типа int.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef isalnum.
isalnum возвращает ненулевое значение, если c - буква (a-z или a-z) или цифра (0-9).
Стандарт ANSI требует наличия функции isalnum.
Никаких процедур ОС не требуется.
2.2 isalpha - пpедикат буквы
#include <ctype.h>
int isalpha(int c);
isalpha по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом буквы, и ноль - в противном случае.
Этот предикат определен только если isacii(c) равно true или с
является EOF.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef isalpha.
isalpha возвращает ненулевое значение, если c - буква (A-Z или a-z).
Стандарт ANSI требует наличия функции isalpha.
Никаких процедур ОС не требуется.
2.3 isascii - пpедикат знака ASCII
#include <ctype.h>
int isascii(int c);
isascii выдает 0, если c - знак ASCII, и ноль - в противном
случае. Этот предикат определен для всех значений типа int.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef isascii.
isascii возвращает ненулевое значение, если младший байт c лежит между 0 и 127 (0x00-0x7f)
Стандарт ANSI требует наличия функции isascii.
Никаких процедур ОС не требуется.
2.4 iscntrl - пpедикат управляющего символа
#include <ctype.h>
int iscntrl(int c);
iscntrl по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом управляющего знака, и ноль - в
противном случае. Этот предикат определен только если isacii(c) равно
true или с является EOF.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef iscntrl.
iscntrl возвращает ненулевое значение, если c -знак удаления или простой управляющий знак (0x7f или 0x00-0x1f).
Стандарт ANSI требует наличия функции iscntrl.
Никаких процедур ОС не требуется.
2.5 isdigit - пpедикат десятичной цифpы
#include <ctype.h>
int isdigit(int c);
isdigit по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом десятичной цифры, и ноль - в
противном случае. Этот предикат определен только если isacii(c) равно
true или с является EOF.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef isdigit.
isdigit возвращает ненулевое значение, если c - десятичная цифра (0-9).
Стандарт ANSI требует наличия функции isdigit.
Никаких процедур ОС не требуется.
2.6 islower - пpедикат строчной буквы
#include <ctype.h>
int islower(int c);
islower по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом строчной буквы, и ноль - в противном
случае. Этот предикат определен только если isacii(c) равно true или с
является EOF.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef islower.
islower возвращает ненулевое значение, если c - строчная буква (a-z).
Стандарт ANSI требует наличия функции islower.
Никаких процедур ОС не требуется.
2.7 isprint, isgraph - предикат видимого знака
#include <ctype.h>
int isprint(int c);
int isgraph(int c);
isprint по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом видимого символа, и ноль - в
противном случае. Этот предикат определен только если isacii(c) равно
true или с является EOF.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef isprint.
isprint возвращает ненулевое значение, если c - видимый знак (0x20-0x7e), isgraph работает точно также, за исключением обработки пробела (0x20).
Стандарт ANSI требует наличия функций isprint и isgraph.
Никаких процедур ОС не требуется.
2.8 ispunct - пpедикат знака препинания
#include <ctype.h>
int ispunct(int c);
ispunct по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом видимого знака препинания, и ноль - в
противном случае. Этот предикат определен только если isacii(c) равно
true или с является EOF.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef ispunct.
ispunct возвращает ненулевое значение, если c - видимый знак препинания (isgraph(c) && !isalnum(c)).
Стандарт ANSI требует наличия функции ispunct.
Никаких процедур ОС не требуется.
2.9 isspace - пpедикат знака пропуска
#include <ctype.h>
int isspace(int c);
isspace по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом знака пропуска, и ноль - в противном
случае. Этот предикат определен только если isacii(c) равно true или с
является EOF.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef isspace.
isspace возвращает ненулевое значение, если c - пробел, tab, возврат каретки, новая строка, вертикальный tab или formfeed (0x00-0x0d,0x20).
Стандарт ANSI требует наличия функции isspace.
Никаких процедур ОС не требуется.
2.10 isupper - пpедикат прописной буквы
#include <ctype.h>
int isupper(int c);
isupper по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом прописной буквы, и ноль - в противном
случае. Этот предикат определен только если isacii(c) равно true или с
является EOF.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef isupper.
isupper возвращает ненулевое значение, если c - прописная буква (a-z).
Стандарт ANSI требует наличия функции isupper.
Никаких процедур ОС не требуется.
2.11 isxdigit - пpедикат шеснадцатиричной цифpы
#include <ctype.h>
int isxdigit(int c);
isxdigit по таблице ASCII выдает по заданному коду ненулевое
значение, если он является кодом шеснадцатиричной цифры, и ноль - в
противном случае. Этот предикат определен только если isacii(c) равно
true или с является EOF.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef isxdigit.
isxdigit возвращает ненулевое значение, если c - шеснадцатиричная цифра (0-9, a-f или a-f).
Стандарт ANSI требует наличия функции isxdigit.
Никаких процедур ОС не требуется.
2.12 toascii - преобразовывает целые числа в коды ASCII
#include <ctype.h>
int toascii(int c);
toascii - это макро, которое преобразовывает целые в числа из
диапозона от 0 до 127, обнуляя все старшие байты.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef toascii.
toascii возвращает целое от 0 до 127.
Стандарт ANSI не требует наличия функции toascii.
Никаких процедур ОС не требуется.
2.13 tolower - преобразовывает целые числа в коды ASCII
#include <ctype.h>
int tolower(int c);
_int tolower(int c);
tolower - это макро, которое преобразовывает прописные буквы в
строчные, оставляя остальные знаки без изменений. Это макро определено
только для c из промежутка от EOF до 255.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef tolower.
_tolower выполняет то же самое преобразование, но может использоваться только с прописными буквами A-Z.
tolower возвращает строчный эквивалент c, если это знак от A до Z, и c в противном случае.
_tolower возвращает строчный эквивалент c, если это знак от A до Z, в противном случае поведение этого макро не определено.
Стандарт ANSI требует наличия функции tolower. _tolower не рекомендуется использовать в переносимых системах.
Никаких процедур ОС не требуется.
2.14 toupper - преобразовывает целые числа в коды ASCII
#include <ctype.h>
int toupper(int c);
_int toupper(int c);
toupper - это макро, которое преобразовывает строчные буквы в
прописные, оставляя остальные знаки без изменений. Это макро
определено только для c из промежутка от EOF до 255.
Вы можете использовать откомпилированную процедуру вместо определения макро, отменяя определение макро при помощи #undef toupper.
_toupper выполняет то же самое преобразование, но может использоваться только со строчными буквами a-z.
toupper возвращает прописной эквивалент c, если это знак от a до z, и c в противном случае.
_toupper возвращает прописной эквивалент c, если это знак от a до z, в противном случае поведение этого макро не определено.
Стандарт ANSI требует наличия функции toupper. _toupper не рекомендуется использовать в переносимых системах.
Никаких процедур ОС не требуется.