Строки
Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY[O..N] OF CHAR, однако, в отличие от последнего, количество символов в строке-переменной может меняться от 0 до N, где N – максимальное количество символов в строке. Значение N определяется объявлением типа STRING [N] и может быть любой константой порядкового типа, но не больше 255. Турбо Паскаль разрешает не указывать N, в этом случае длина строки принимается максимально возможной, а именно N=255.
Строка в Турбо Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY [0..N] OF CHAR, например:
var st: String; begin ….. if st[5] = 'A' then… end.
Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки, первый значащий символ строки занимает второй байт и имеет индекс 1. Над длиной троки можно осуществлять необходимые действия и таким способом изменять длину. Например, удалить из строки все ведомые пробелы можно следующим образом:
var st: String; i: Byte; begin i: = ord(st [0]); {i – текущая длина строки} while (i <> 0) and (st[i] = ' ') do begin dec(i); st[0]: = chr(i) end; ….. end.
Значение ORD(st[0]), т.е. текущую длину строки, можно получить и с помощью функции LENGTH(st), например:
while (Length(st)<>0) and (st[Length(st)]=' ') do st[0]: = chr(Length(st)-1)
К строкам можно применять операцию "+" – сцепление, например:
st: = 'а1 + 'b'; st: = st + 'с'; {st содержит "abc"}
Если длина сцепленной строки превысит максимально допустимую длину N, то "лишние" символы отбрасываются. Следующая программа, например, напечатает символ 1:
var st: String [1]; begin St: = '123'; WriteLn(st) end.