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

3.2. Строки

Строка – это последовательность символов.

В программе на языке Object Pascal можно определить некоторую максимальную длину строки (таблица 3.1), а фактически строки могут содержать меньшее количество символов или не содержать их совсем (пустая строка). При выполнении программы длина строки может изменяться.

Таблица 3.1 Строковые типы в языке Object Pascal

Тип

Максимальная длина

ShortString

AnsiString

String

String[<Длина>]

WideString

255 (символы ASCII)

~231 (~2 Гб, символы ASCII)

255 или ~2 Гб ( {$H- } – ShortString,

{$H+} – AnsiString )

ShortString, максимальная длина = Длина

~230 (~1 Гб, символы Unicode)

Строковые типы AnsiString, WideString физически представляют последовательность символов, ограниченную в конце нулевым символов (так как это принято в языках C/C++).

Физическое представление типа ShortString приведено на рисунке 3.1.

Рисунок 3.1 – Физическое представление строки ShortString

Вы можете использовать индексирование для получения значения символа строки. Например, S[i] – значение i-го символа строки S.

Существует множество операций над строками, наиболее важные их них следующие:

  • Операция конкатенации (+) применяется для объединения двух строк в одну результирующую строку

  • Операции отношения ( =, <>, >, <, >=, <= ) используются для сравнения двух строк. При сравнении строк используется понятие лексикографического (алфавитного) порядка. Результат выполнения операций отношения над строками имеет логический тип

  • Выбор подстроки при помощи позиционного индекса. Это операция выделяет подстроку (непрерывную последовательность символов) по позиции ее первого символа в исходной строке и указанной длине подстроки

  • Выбор подстроки на основе сопоставления с образом. Операция поиска в строке подстроки, соответствующей заданному образцу (символу или последовательности символов)

  • Форматирование ввода-вывода. Использование строк для облегчения форматирования данных при выводе или вводе.

В языке Object Pascal реализованы многие из этих операций.

На рисунке 3.2 приведены некоторые из них:

Процедуры:

Delete(St, Poz, N) – удаление N символов строки St, начиная с позиции Poz.

Insert(St1, St2, Poz) – вставка строки St1 в строку St2, начиная с позиции Poz.

Функции:

Copy(St, Poz, N) – возвращает подстроку из строки St, начиная с символа в позиции Poz и длиной N символов

Length(St) – возвращает длину строки St.

Pos(St1, St2) – поиск первого появление подстроки St1 в строке St2. Результат – позиция символа, начиная с которого подстрока St1 расположена в строке St2; в противном случае – 0 .

IntToStr(n) – преобразование целого числа n в строку.

StrToInt(St) – преобразование строки St в целое число.

Рисунок 3.2 – Примеры работы со строками