Функция
length (s : string):word;
вычисляет текущую длину строки s (количество символов в строке). Строка может быть задана идентификатором или непосредственно, в апострофах.
s:=¢Петербург¢
п:=length(s); {n = 9}
k:=length (¢Мы изучаем Паскаль¢); {k = 18}
m:=length ("); {m=0}
Пример. Дана строка s. Создать строку s1 из символов строки s, вставив после каждого символа ¢a¢ символ ¢c¢.
s1:=’¢;
for i:=1 to length (s) do
begin s1:=s1 + s[i];
if s[i] = ¢a¢ then s1:=s1 + ¢c¢
end;
Функция
pos (subs, s:string):byte;
вычисляет номер символа в строке s, с которого начинается первое включение в s подстроки subs. Если же s не содержит в себе subs, то функция даст результат 0.
s:=¢Компьютер¢;
п:=pos(¢ю¢, s); {п = 6}
s1:=¢Kомп¢;
k:=pos(s1, s); {k = 1}
Очевидным недостатком функции pos является то, что она возвращает только первую позицию subs в s от начала строки, т. е. после обращения к функции
р := pos (¢noo¢, ¢Boonoonoonoos¢);
она завершит свою работу, вернув значение 4, хотя есть еще и 7, и 10.
Функция
сору (s:string; start, len:integer):string;
позволяет выделить из строки последовательность из len символов, начиная с номера start. Если start больше длины всей строки s, то функция вернет пустую строку, а если len больше, чем число символов от start до конца строки s, вернется остаток строки s, от start до конца. Например:
scopy:=сору(¢ABС***123¢, 4, 3); {scopy ='***'}
scopy:=сору(¢АВС¢, 4, 3); {scopy ="}
scopy:=copy(¢ABC***123¢, 4, 11); {scopy ='*** 123¢}
Процедура
delete (var s:string; start, len:integer);
удаляет из строки s len символов, начиная с символа с номером start:
s:=¢СТРОКА¢;
delete (s, 2, 3); {s ='СКА'}
После удаления подстроки ее оставшиеся части s как бы склеиваются.
Если start = 0 или превышает длину строки s, то строка не изменяется. Также не изменит строку значение len = 0. При len большем, чем остаток строки, будет удалена подстрока от start и до конца s. Это можно использовать при «подрезании» строк до заданной величины:
delete (s, 17, 255);
Здесь строки s длиной менее 17 символов пройдут через процедуру неизменными, а все остальные будут укорочены до длины в 16 символов.
Если start > 255, возникнет ошибка при выполнении.
Процедура
insert (subs:string; var s:string; start:integer);
вставляет строку subs в строку s, начиная с позиции start:
s:=¢Начало–конец¢;
insert (¢середина–¢, s, 8 );
{теперь s = ¢Начало–середина–конец¢}
Если измененная строка s оказывается слишком длинной, то она автоматически укорачивается до объявленной длины s (при этом, как всегда, «теряется» правый конец строки).