6.2. Строка типа string
В Turbo Pascal тип-строка (стандартный тип string) - последовательность символов произвольной длины (до 255 символов). Строку можно рассматривать как массив символов, однако в связи с широким использованием строк и некоторыми особенностями по сравнению со стандартными массивами они выделены в отдельный тип данных.
У типа-строки в квадратных скобках может быть указан его размер (от 1 до 255). Если размер строки не указан, он считается равным 255, например:
var
Str: string[80];
MaxStr: string; {строка в 255 символов}
const
January: string[10] = 'Январь';
Для строк применимы операции конкатенации (+) и сравнения.
Операция конкатенации добавляет к первой строке вторую.
Пример. Объединение двух строк.
var
Str, Strl, Str2:string[80] ;
Begin
. . .
Str1 := 'Turbo ';
Str2 := 'Pascal';
Str := Str1 + Str2; {в переменной Str - 'Turbo Pascal'}
. . .
end.
Сравнивать можно строки разной длины. Сравнение осуществляется слева направо в соответствии с ASCII-кодами соответствующих символов. Считается, что отсутствующие символы в более короткой строке имеют код меньше кода любого действительного символа. Например, 'XS' больше, чем 'Х'.
Пример. Проверить, является ли введенная совокупность символов именем месяца на русском языке.
program EXAMPLE11;
const
Instance: array[l..l2] of string[10]= ('ЯНВАРЬ', 'ФЕВРАЛЬ', 'МАРТ ', 'АПРЕЛЬ' ' МАЙ', 'ИЮНЬ', ' ИЮЛЬ', 'АВГУСТ ', 'СЕНТЯБРЬ', 'ОКТЯБРЬ ', ' НОЯБРЬ', 'ДЕКАБРЬ');
Month: Boolean = False;
var
Str: string[10];
i: Integer;
begin
Writeln('Введите заглавные символы: ');
ReadLn(Str);
for i := 1 to 12 do
if Str = Instance[i] then Month:=True;
if Month then
WriteLn('Введено имя месяца')
else
WriteLn('Введено не имя месяца')
end .
Фактически строка N символов представляет собой массив из N+1 символа:
string[N] = array[0..N] of Char.
Нулевой символ предназначен для указания используемого количества символов строки и может изменяться от символа с кодом 0 до символа с кодом N. С ним можно работать как и с остальными символами строки (записывать и читать его значение и т. д.), но не забывая о его основном предназначении.
|