Использование оператора + имеет тот же эффект, что и использование функции Concat.
st:=’City’+’ Odessa!’; // st=’City Odessa!';
Оператор + выполняется быстрее, чем функция Concat.
Пример. Подсчитать в заданной строке ('BABABB ABBBA') количество всех символов 'В' и удалить из нее те символы 'В', которым предшествуют (во входной строке) символы 'А'.
Простая задача подсчета осложнена требованием удаление определенных символов. Совмещение этих двух задач в одном цикле не очень удобно, так как для подсчета символов лучше применить цикл с параметром
For i:=1 to length (z) do ....;,
а для удаления символов – универсальный цикл
while Pos(...,z)<>0 do....
program Str_134;
const mark:Char=Chr(0); // Chr(0) – непечатный символ
var z:string;
i,q:byte;
begin
writeln('Input string');
readln(z);
q:=0;
For i:=1 to Length(z) do
if z[i]='B' then
begin
inc(q);
if z[i-1]='A' then z[i]:=mark
end;
while Pos(mark,z)<>0 do
Delete(z, Pos(mark,z),1);
writeln('Quantity of symbols ''B'' in the string: ', q);