Вход/Регистрация
Язык программирования Си для персонального компьютера
вернуться

Субботин Д. М.

Шрифт:

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

Обозначение ANSI, используемое в полном описании библиотеки, указывает, что отмеченная библиотечная функция включена в стандарт языка Си.

КРАТКОЕ ОПИСАНИЕ БИБЛИОТЕКИ

Ниже приводится краткое описание основных групп функций для быстрой ориентации в библиотеке. При этом вводятся основные понятия, используемые при описании библиотечных функций (в частности, связанные с организацией ввода/вывода). Также указывается, в каком стандартном включаемом (по директиве препроцессора #include) файле содержится описание прототипа функции, относящихся к ней структур данных и констант.

Работа с областями памяти и строками

В стандартной библиотеке есть специальная группа Функций для обработки областей памяти, которые рассматриваются как последовательности байтов.

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

Другое используемое понятие — строка. Отличие строки от буфера в том, что ее размер задается не явно, а определяется первым встретившимся при просмотре строки слева направо нулевым байтом (имеющим значение '\0'), причем считается, что этот нулевой байт также принадлежит строке.

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

Функция Краткое описание
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. Все функции работают со строками, завершающимися нулевым байтом ('\0'). Для работы с массивом символов, не имеющим в конце нулевого байта, вы можете использовать функции преобразования буферов, описанные выше.

Определение класса символов и преобразование символов

Функция Краткое описание
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 в строку
  • Читать дальше
  • 1
  • ...
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: