Описание строкового типа

Изучение данных структурированного типа начнем со строкового типа данных (строк). Строка – это последовательность символов ASCII. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться в пределах от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки принимается равной 255 байтам.

Переменную строкового типа можно определить через описание типа в разделе определения типов или непосредственно в разделе описания переменных. Строковые данные могут использоваться в программе также в качестве констант. Не допускается применение строковых переменных в качестве селектора в операторе case.

Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка. Формат:

type

<имя типа> = string [максимальная длина строки];

var

<идентификатор….> : <имя типа>:

Переменную типа string можно задать и без описания типа:

var идентификатор… .> : string [максимальная длина строки];

Пример:

const

Address = ‘ул. Переверткина. 25’: {Строковая константа}

type

Flot = string[125];

var

Fstr : Flot: {Описание с заданием типа}

Stl : string; {По умолчанию длина строки = 255}

St2.St3 : string[50];

Nazv : string[280]; {Ошибка, длина Nazv превышает 255}

Строка в языке Turbo Pascal трактуется как цепочка символов. Для строки из N символов отводится N + 1 байт: N байт для хранения символов строки, а один байт – для значения текущей длины строки.

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

Поэтому для определения объема памяти в байтах, требуемой для размещения строки, к значению ее максимальной длины прибавляется 1. Например, для размещения в памяти переменных Fstr, Stl, St2 требуется соответственно 126, 35 и 51 байт. Рассмотрим структуру размещения строки в памяти на следующем примере. Пусть М – максимальная длина строки, L — текущая длина, А — ячейка памяти. Тогда:

А – содержит величину текущей длины;

А + 1 – первый символ строки;

А + L – последний значащий символ;

A + L + 1

… – незанятые ячейки памяти

А + М

Добавить комментарий