Главная
страница 1 ... страница 19страница 20страница 21страница 22страница 23страница 24

B2. Проверки класса символа:

Заголовочный файл объявляет функции, предназначенные для проверок символов. Аргумент каждой из них имеет тип int и должен либо представлять собой EOF, либо быть значением unsigned char, приведенным к int; возвращаемое значение тоже имеет тип int. Функции возвращают ненулевое значение ("истина"), когда аргумент c удовлетворяет описанному условию или принадлежит указанному классу символов, и нуль в противном случае.



isalnum(c)

isalpha(c) или isdigit(c) есть истина

isalpha(c)

isupper(c) или islower(c) есть истина

iscntrl(c)

управляющий символ

isdigit(c)

десятичная цифра

isgraph(c)

печатаемый символ кроме пробела

islower(c)

буква нижнего регистра

isprint(c)

печатаемый символ, включая пробел

ispunct(c)

печатаемый символ кроме пробела, буквы или цифры

isspace(c)

пробел, смена страницы, новая строка, возврат каретки, табуляция, вертикальная табуляция

isupper(c)

буква верхнего регистра

isxdigit(c)

шестнадцатеричная цифра

В наборе семибитовых ASCII-символов печатаемые символы находятся в диапазоне от 0x20 (' ') до 0x7E ('~'); управляющие символы - от 0 (NUL) до 0x1F (US) и 0x7F (DEL).

Помимо перечисленных есть две функции, приводящие буквы к одному из регистров:

int tolower(int c) – переводит c на нижний регистр;

int toupper(int c) - переводит c на верхний регистр.

Если c - буква на верхнем регистре, то tolower(c) выдаст эту букву на нижнем регистре; в противном случае она вернет c. Если c - буква на нижнем регистре, то toupper(c) выдаст эту букву на верхнем регистре; в противном случае она вернет c.



B3. Функции, оперирующие со строками:

Имеются две группы функций, оперирующих со строками. Они определены в заголовочном файле . Имена функций первой группы начинаются с букв str, второй - с mem. Если копирование имеет дело с объектами, перекрывающимися по памяти, то, за исключением memmove, поведение функций не определено. Функции сравнения рассматривают аргументы как массивы элементов типа unsigned char.

В таблице на с. 321 переменные s и t принадлежат типу char *, cs и ct – типу const char *, n - типу size_t, а c - значение типа int, приведенное к типу char.

Последовательные вызовы strtok разбивают строку s на лексемы. Ограничителем лексемы служит любой символ из строки ct. В первом вызове указатель s не равен NULL. Функция находит в строке s первую лексему, состоящую из символов, не входящих в ct; ее работа заканчивается тем, что поверх следующего символа пишется '\0' и возвращается указатель на лексему. Каждый последующий вызов, в котором указатель s равен NULL, возвращает указатель на следующую лексему, которую функция будет искать сразу за концом предыдущей. Функция strtok возвращает NULL, если далее никакой лексемы не обнаружено. Параметр ct от вызова к вызову может варьироваться.



Здесь и ниже под такими выражениями как cscs меньше (больше) ct, если первый несовпавший элемент в cs арифметически меньше (больше) соответствующего элемента из ct.— Примеч. ред.

char *strcpy(s,ct)

копирует строку ct в строку s, включая '\0'; возвращает s

char *strncpy(s,ct,n)

копирует не более n символов строки ct в s; возвращает s. Дополняет результат символами '\0', если символов в ct меньше n

char *strcat(s,ct)

приписывает ct к s; возвращает s

char *strncat(s,ct,n)

приписывает не более n символов ct к s, завершая s символом '\0'; возвращает s

char strcmp(cs,st)

сравнивает cs и ct; возвращает <0, если cs0, если cs>ct (I.B.: вообще-то, функция возвращает int)

char strncmp(cs,ct)

сравнивает не более n символов cs и ct; возвращает <0, если cs0, если cs>ct (I.B.: тоже int должна возвращать)

char *strchr(cs,c)

возвращает указатель на первое вхождение c в cs или, если такового не оказалось, NULL

char *strrchr(cs,c)

возвращает указатель на последнее вхождение c в cs или, если такового не оказалось, NULL

size_t strspn(cs,ct)

возвращает длину начального сегмента cs, состоящего из символов, входящих в строку ct

size_t strcspn(cs,ct)

возвращает длину начального сегмента cs, состоящего из символов, не входящих в строку ct

char *strpbrk(cs,ct)

возвращает указатель в cs на первый символ, который совпал с одним из символов, входящих в ct, или, если такового не оказалось, NULL

char *strstr(cs, ct)

возвращает указатель на первое вхождение ct в cs или, если такового не оказалось, NULL

size_t strlen(cs)

возвращает длину cs

char * strerror(n)

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

char * strtok(s, ct)

strtok ищет в s лексему, ограниченную символами из ct; более подробное описание этой функции см. ниже

Функции mem... предназначены для манипулирования с объектами как с массивами символов; их назначение - получить интерфейсы к эффективным программам. В приведенной ниже таблице s и t принадлежат типу void *; cs и ct - типу const void *; n - типу size_t; а c имеет значение типа int, приведенное к типу char.

void *memcpy(s,ct, n)

копирует n символов из ct в s и возвращает s

void *memmove(s,ct,n)

делает то же самое, что и memcpy, но работает и в случае "перекрывающихся" объектов.

int memcmp(cs, ct, n)

сравнивает первые n символов cs и ct; выдает тот же результат, что и функция strcmp

void *memchr(cs, c, n)

возвращает указатель на первое вхождение символа c в cs или, если среди первых n символов c не встретилось, NULL

void *memset(s, c, n)

размещает символ c в первых n позициях строки s и возвращает s




<< предыдущая страница   следующая страница >>
Смотрите также:
Б. Керниган, Д. Ритчи Язык программирования Си Издание 3-е, исправленное Перевод с английского под редакцией Вс. С. Штаркмана Невский Диалект, Санкт-Петербург 2001
3942.83kb.
24 стр.
Шарп Перевод на русский язык под общей редакцией В. Зеленского Санкт-Петербург Б. С. К
2473.89kb.
10 стр.
Как запад стал богатым
5224.01kb.
30 стр.
Сведения о квалификации педагогических кадров
1227.17kb.
5 стр.
Тактика штурмовой авиации
1780.85kb.
12 стр.
Правила написания и оформления дипломных работ издание 3-е, исправленное и дополненное
840.67kb.
6 стр.
Николе М., Шварц Р. Н 63 Семейная терапия. Концепции и методы/Пер, с англ. О. Очкур, А. Шишко
3577.21kb.
23 стр.
Издание 3-е, исправленное Научный редактор издания профессор В. В. Целищев сибирское университетское издательство новосибирского университета новосибирск 2001
12957.91kb.
60 стр.
Сильвия Крэнстон при участии Кэри Уильямс Жизнь и творчество основательницы современного теософского движения Блаватской е. П. Перевод с английского под редакцией
8089.17kb.
47 стр.
Проблемы здоровья и экологии
3773.97kb.
37 стр.
Санкт-Петербург Москва • Харьков • Минск 2001
144.58kb.
1 стр.
Поэтический художественный перевод с английского языка на русский язык: Томас Харди. Thomas Hardy. His Immortality
7.24kb.
1 стр.