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. Все функции работают со строками, завершающимися нулевым байтом (' '). Для работы с массивом символов, не имеющим в конце нулевого байта, вы можете использовать функции преобразования буферов, описанные выше.
Определение класса символов и преобразование символов
Все эти функции реализованы как макроопределения, заданные в файле ctype.h
Форматные преобразования данных
Система программирования ТС предоставляет также следующие функции: