Язык программирования Си для персонального компьютера - C. Бочков
Шрифт:
Интервал:
Закладка:
Обозначение ANSI, используемое в полном описании библиотеки, указывает, что отмеченная библиотечная функция включена в стандарт языка Си.
КРАТКОЕ ОПИСАНИЕ БИБЛИОТЕКИ
Ниже приводится краткое описание основных групп функций для быстрой ориентации в библиотеке. При этом вводятся основные понятия, используемые при описании библиотечных функций (в частности, связанные с организацией ввода/вывода). Также указывается, в каком стандартном включаемом (по директиве препроцессора #include) файле содержится описание прототипа функции, относящихся к ней структур данных и констант.
Работа с областями памяти и строками
В стандартной библиотеке есть специальная группа Функций для обработки областей памяти, которые рассматриваются как последовательности байтов.
Если размер области, с которой необходимо работать, задается явно, будем называть такую область буфером.
Другое используемое понятие — строка. Отличие строки от буфера в том, что ее размер задается не явно, а определяется первым встретившимся при просмотре строки слева направо нулевым байтом (имеющим значение ' '), причем считается, что этот нулевой байт также принадлежит строке.
Для копирования буферов, для присваивания каждому байту в пределах указанного буфера заданного значения и для сравнения содержимого двух буферов предназначены следующие функции:
Функция Краткое описание memccpy копирует символы из одного буфера в другой до тех пор, пока не будет скопирован заданный символ или не будет скопировано определенное число символов memchr возвращает указатель на первое вхождение заданного символа в буфере memcmp сравнивает указанное число символов из двух буферов memlcmp сравнивает указанное число символов двух буферов, считая строчные и прописные буквы эквивалентными memcpy копирует указанное количество символов из одного буфера в другой memset инициализирует заданным значением указанное количество байтов в буфере movedata копирует определенное количество символов из одного буфера в другой, даже когда буфера находятся в разных сегментахПрототипы перечисленных функций содержатся в файле memory.h (MSC) и в файлах mem.h и string.h (ТС).
Система программирования ТС предоставляет дополнительно следующие функции для работы с буферами:
Функция Краткое описание memove копирует указанное количество символов из одного буфера в другой movmem копирует указанное количество символов из одного буфера в другой setmem инициализирует заданным значением указанное количество байтов в буфереПрототипы функций memmove и movmem содержатся в файлах mem.h и string.h. Прототип функции setmem содержится в файле mem.h.
Для работы со строками существуют следующие библиотечные функции (ТС & MSC):
Функция Краткое описание strcat катенация (склеивание) строк strchr найти первое вхождение заданного символа в строке strcmp сравнить две строки strcpy копировать одну строку в другую strcspn найти первое вхождение символа из заданного набора символов в строке strdup дублирование строки strerror сформировать в строке сообщение об ошибке, состоящее из двух частей: системной диагностики и необязательного добавочного пользовательского сообщения stricmp сравнить две строки, считая символы нижнего и верхнего регистров эквивалентными strlen вычислить длину строки strlwr преобразовать строку в нижний регистр (строчные буквы) strncat добавить n символов в строку strncmp сравнение n символов в двух строках strncpy скопировать n символов из одной строки в другую strnicmp сравнение n символов двух строк strnset установить n символов в строке в заданное значение strpbrk найти первое вхождение любого символа из заданного набора в строке strrchr найти последнее вхождение заданного символа в строке strrev инвертировать (перевернуть) строку strset установить все символы строки в заданное значение strspn найти первую подстроку из заданного набора символов в строке strstr найти первую подстановку одной строки (более короткой) в другой strtok найти следующую точку в строке strupr преобразовать строку в верхний регистр (заглавные буквы)Кроме того, система программирования MSC предоставляет дополнительно функцию strcmpi (идентична функции stricmp), а система программирования ТС предоставляет функцию stpcpy (идентична функции strcpy, но возвращает в точку вызова другое значение).
Прототипы всех функций работы со строками содержатся в файле string.h. Все функции работают со строками, завершающимися нулевым байтом (' '). Для работы с массивом символов, не имеющим в конце нулевого байта, вы можете использовать функции преобразования буферов, описанные выше.
Определение класса символов и преобразование символов
Функция Краткое описание isalnum проверка на букву или цифру isalpha проверка на букву isascii проверка на символ из набора кодировки ASCII iscntrl проверка на управляющий символ isdigit проверка на десятичную цифру isgraph проверка на печатный символ, исключая пробел islower проверка на малую букву isprint проверка на печатный символ ispunct проверка на знак пунктуации isspace проверка на пробельный символ isupper проверка на заглавную букву isxdigit проверка на шестнадцатеричную цифру toascii преобразование символа в код ASCII tolower проверка и преобразование в малую букву, если заглавная буква toupper проверка и преобразование малой буквы в заглавную _tolower преобразование буквы в малую (без проверки) _toupper преобразование буквы в заглавную (без проверки)Все эти функции реализованы как макроопределения, заданные в файле ctype.h
Форматные преобразования данных
Функция Краткое описание atof преобразование строки, в представляемое ей число типа float atoi преобразование строки в число типа int (целое) atol преобразование строки в число типа long (длинное целое) ecvt преобразование числа типа double в строку fcvt преобразование числа типа double в строку gcvt преобразование числа типа double в строку itoa преобразование числа типа int в строку ltoa преобразование числа типа long в строку ultoa преобразование числа типа unsigned long в строкуСистема программирования ТС предоставляет также следующие функции: