Функции для работы со строками, памятью и символами
Библиотека Borland имеет богатый набор разнообразных функций для работы со строками, памятью и символами. По отношению к этим функциям строки являются массивами символов с нулевым символом в конце, память — набором смежных блоков ОЗУ, а символ — однобайтовой переменной. Прототипы функций обработки строк представлены в заголовочном файле string.h. Функции для работы с памятью определены в файле mem.h, но некоторые из них могут использовать также и string.h. Функции для работы с символами в качестве заголовочного файла используют ctype.h.
Ввиду того, что С/С++ не производят проверки границ при операциях с массивами, предотвращение переполнения массива является заботой программистов. В случае переполнения массива его поведение не определено. Практически это означает серьезные неисправности в работе программы.
В С/С++ под печатным символом понимается такой, который может быть отображен на терминальном устройстве. Сюда относятся символы со значениями кодов, лежащими между пробелом (0x20) и тильдой (0х7Е). Значения управляющих символов изменяются между (0) и (0x1F), а также в них входит символ DEL (0x7F). Символы ASCII имеют значения от 0 до 0x7F.
При объявлении функций для работы с символами указывается, что они воспринимают целочисленные аргументы. Хотя это и так, функция использует только младший байт аргумента. Это позволяет пользователю применять символьные аргументы, поскольку при вызове функции они автоматически приводятся к типу int.
Большинство функций, описанных в этой главе, определены стандартом ANSI С и являются полностью переносимыми. Единственным исключением являются включенные в Borland некоторые FAR- версии строковых функций. Они будут рассмотрены вместе с их обычными версиями. (FAR-версии не определены стандартом ANSI С). Эти функции могут использоваться только в 16-разрядной среде.
В нескольких функциях используется тип данных size_t. Этот тип определен в различных заголовочных файлах, которые используются описанными здесь функциями, и является беззнаковым целым типом.