Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
55
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Глава 18. Строки с завершающим нулем

В Borland Pascal поддерживается класс символьных строк, ко-

торые называются строками, завершающимися нулем. Благодаря расши-

ренному синтаксису Borland Pascal и модулю Strings ваши программы

(как для DOS, так и для Windows) могут использовать строки с за-

вершающим нулем путем задания в операторе uses модуля Strings.

Что такое строка с завершающим нулем?

В Borland Pascal строки обычного типа (String) хранятся как

байт длины, за которым следует последовательность символов. Мак-

симальная длина строки в Паскале равна 255 символам. Таким обра-

зом, строка Паскаля занимает от 1 до 256 байт памяти.

Строки с завершающим нулем не содержат байта длины. Вместо

этого они состоят из последовательности ненулевых символов, за

которыми следует символ NULL (#0). Никаких ограничений на длину

строк с завершающим нулем не накладывается, но 16-разрядная архи-

тектура DOS и Windows ограничивает их размер 65535 символами.

Функции модуля Strings

Borland Pascal не имеет встроенных подпрограмм, предназна-

ченных специально для работы со строками с завершающим нулем. Эти

функции вы можете найти в модуле Strings. Среди них вы найдете

функцию StrPCopy, которую можно использовать для копирования

строки Паскаля в строку с завершающим нулем, и StrPos, используе-

мую для преобразования строки с завершающим нулем в строку Паска-

ля. Приведем краткое описание каждой функции:

Функции модуля Strings

---------------T------------------------------------------------

¦ Функция ¦ Описание ¦

+--------------+------------------------------------------------+

¦ StrCat ¦ Добавляет исходную строку к концу целевой стро-¦

¦ ¦ ки и возвращает указатель на целевую строку. ¦

+--------------+------------------------------------------------+

¦ StrComp ¦ Сравнивает две строки S1 и S2. Возвращает¦

¦ ¦ значение < 0, если S1 < S2, равное 0, если S1 =¦

¦ ¦ S2 и > 0, если S1 > S2. ¦

+--------------+------------------------------------------------+

¦ StrCopy ¦ Копирует исходную строку в целевую строку и¦

¦ ¦ возвращает указатель на целевую строку. ¦

+--------------+------------------------------------------------+

¦ StrECopy ¦ Копирует исходную строку в целевую строку и¦

¦ ¦ возвращает указатель на конец целевой строки. ¦

+--------------+------------------------------------------------+

¦ StrIComp ¦ Сравнивает две строки без различия регистра¦

¦ ¦ символов. ¦

+--------------+------------------------------------------------+

¦ StrLCat ¦ Присоединяет исходную строку к концу целевой¦

¦ ¦ строки. При этом обеспечивается, что длина ре-¦

¦ ¦ зультирующей строки не превышает заданного мак-¦

¦ ¦ симума. Возвращается указатель на строку-ре-¦

¦ ¦ зультат. ¦

+--------------+------------------------------------------------+

¦ StrLComp ¦ Сравнивает две строки с заданной максимальной¦

¦ ¦ длиной. ¦

+--------------+------------------------------------------------+

¦ StrLCopy ¦ Копирует заданное число символов из исходной¦

¦ ¦ строки в целевую строку и возвращает указатель¦

¦ ¦ на целевую строку. ¦

+--------------+------------------------------------------------+

¦ StrEnd ¦ Возвращает указатель на конец строки, то есть¦

¦ ¦ указатель на завершающий строку нулевой символ.¦

+--------------+------------------------------------------------+

¦ StrDispose ¦ Уничтожает ранее выделенную строку. ¦

+--------------+------------------------------------------------+

¦ StrLen ¦ Возвращает длину строки. ¦

+--------------+------------------------------------------------+

¦ StrLIComp ¦ Сравнивает две строки с заданной максимальной¦

¦ ¦ длиной без различия регистра символов. ¦

+--------------+------------------------------------------------+

¦ StrLower ¦ Преобразует строку в нижний регистр и возвраща-¦

¦ ¦ ет указатель на нее. ¦

+--------------+------------------------------------------------+

¦ StrMove ¦ Перемещает блок символов из исходной строки в¦

¦ ¦ целевую строку и возвращает указатель на целе-¦

¦ ¦ вую строку. Два блока могут перекрываться. ¦

+--------------+------------------------------------------------+

¦ StrNew ¦ Выделяет для строки память в динамически рас-¦

¦ ¦ пределяемой области. ¦

+--------------+------------------------------------------------+

¦ StrPas ¦ Преобразует строку с завершающим нулем в строку¦

¦ ¦ Паскаля. ¦

+--------------+------------------------------------------------+

¦ StrPCopy ¦ Копирует строку Паскаля в строку с завершающим¦

¦ ¦ нулем и возвращает указатель на строку с завер-¦

¦ ¦ шающим нулем. ¦

+--------------+------------------------------------------------+

¦ StrPos ¦ Возвращает указатель на первое вхождение задан-¦

¦ ¦ ной подстроки в строке, или nil, если подстрока¦

¦ ¦ в строке не содержится. ¦

+--------------+------------------------------------------------+

¦ StrRScan ¦ Возвращает указатель на последнее вхождение¦

¦ ¦ указанного символа в строку, или nil, если сим-¦

¦ ¦ вол в строке отсутствует. ¦

+--------------+------------------------------------------------+

¦ StrScan ¦ Возвращает указатель на первое вхождение ука-¦

¦ ¦ занного символа в строку, или nil, если символ¦

¦ ¦ в строке отсутствует. ¦

+--------------+------------------------------------------------+

¦ StrUpper ¦ Преобразует строку в верхний регистр и возвра-¦

¦ ¦ щает указатель на нее. ¦

L--------------+-------------------------------------------------

Соседние файлы в предмете Программирование на Pascal