В Турбо Паскале определены данные строкового типа - String.
Пример. Определение переменных строкового типа:
Var
str : String;
line : String[80];
После слова String может указываться длина строки (максимальная). Если длина не указана, то считается, что она переменная и определяется числом символов, записанных на место переменной типа String при вводе или при-сваивании. Это число хранится в нулевом байте соответствующей переменной.
Операция "Конкатенация строк" изображается символом + .
Пример.
Пусть переменные s1, s2 и s3 имеют тип String.
Program Plus_Demo ;
var s1, s2 : string;
begin
s1 := ’Мир ’;
s2 := s1 + s1 + ’и еще раз ’ + s1 + ’!’ ;
writeln (s2); {Напечатается: Мир Мир и еще раз Мир! }
end.
Функция Copy (строка,начальный номер,длина) – выделение подстроки заданной "длины" из "строки", начиная с символа, определенного "начальным номером". Если параметр "длина" больше остатка строки, то выделяется остаток;, если параметр "начальный номер" превышает длину строки, то результатом будет пустая строка.
Пример.
Program CopyDemo;
var s1, s2 : string;
begin
s1 := 'doroga';
s2 := copy (’doroga’, 3, 4);
writeln (s2); { Будет напечатана строка ’roga’ }
end.
Процедура Delete(строка,номер,длина) – удаляет из "строки" подстроку заданной "длины", начиная с заданного "номера":
Пример.
S := 'Сайт UpByte.Net';
Delete(S,12,3);
{Результат: S получит новое значение 'Сайт UpByte'}
Функция Length(строка) – возвращает длину строки (количество символов в ней).
Length (’kolobok’) - результат 7 ;
Length (’’) - результат 0.
Функция POS(подстрока,строка) – возвращает номер символа, начиная с которого "подстрока" встречается в "строке" (если не встречается, то функция возвращает ноль). Прописные и строчные буквы считаются различными.
Пример.
N := Pos('ра', 'Абракадабра'); {N получит значение 3}
M := Pos('Ра', 'Абракадабра'); {M получит значение 0}
Обращение к одному символу строки: Например, если st = ’Раз Два Три!’ , то:
st[1] равно ’Р’,
st[2] равно ’а’,
st[3] равно ’з’,
st[9] равно ’Т’.
Номером символа может быть и переменная целого типа, например:
program SymbolsNr;
var s : string;
i : integer;
begin
s := ’Красота!’;
i := length (s); { Вычисление длины }
writeln (s[i]) { Напечатается '!' }
end.
Используя квадратные скобки можно не только читать значение указанного символа, но и записывать на его место новый символ. Например:
st:= ’Раз Два Три!’; { st = ’Раз Два Три!’ }
st[4] := ’-’; { st = ’Раз-Два Три!’ }
st[8] := ’-’; { st = ’Раз-Два-Три!’ }
st[1] := ’Щ’; { st = ’Щаз-Два-Три!’ }