Неименованные константы

Символ-константа и строка-константа

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

Символы и строки

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

В разделе var строки описываются следующим образом1):

var <имя_строки>: string[[<длина>]]2)

Максимальная длина строки - 255 символов. Нумеруются ее компоненты начиная с 0, но этот нулевой байт хранит длину строки.

Если <длина> не указана, то считается, что в строке 255 символов. Поэтому для экономии памяти следует по возможности точно указывать длину используемых строк.

Примеры описаний:

var s1: string[10]; (*строка длиной 10 символов*) s2: string; (*строка длиной 255 символов*)

Необходимо отметить, что один символ и строка длиной в один3) символ

var c: char; s: string[1];

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

В тексте программы на языке Pascal последовательность любых символов, заключенная в апострофы, воспринимается как символ или строка. Например:

c:='z'; {c: char}s:='abc'; {s: string}

Константе автоматически присваивается "минимальный" тип данных, достаточный для ее представления: char или string[k]. Поэтому попытка написать

c:='zzz'; {c: char}

вызовет ошибку уже на этапе компиляции.

Кроме того, не забывайте, что если константа длиннее той переменной-строки, куда ваша программа пытается ее записать, то в момент присваивания произойдет усечение ее до нужной длины.

Пустая строка задается двумя последовательными апострофами:

st:= '';

Если же необходимо сделать так, чтобы среди символов строки содержался и сам апостроф, его нужно удвоить:

s:='Don''t worry about the apostrophe!';

Если теперь вывести на экран эту строку, то получится следующее:

Don't worry about the apostrophe!