Индекс находился вне границ массива (Строки)
program P5;
var
S: string;
i, j, k: integer;
begin
writeln('Введите строку символов:');
readln(S);
i := 0;
for j:= 0 to length(S) do
begin
if S[j] = 'A'
then
begin
i := i + 1;
S[j] := '*';
end;
if S[j] = 'B'
then
begin
delete(S, j, 1);
end;
end;
writeln('Количество символов А = ', i);
writeln(S);
end.
Без данного куска работает но он нужен
if S[j] = 'B'
then
begin
delete(S, j, 1);
end;
Ответы (1 шт):
Автор решения: Flashdim
→ Ссылка
program P5;
var
S: string;
i, j, k: integer;
begin
writeln('Введите строку символов:');
readln(S);
i := 0;
j:=1;
while j<=length(S) do
begin
if S[j] = 'A'
then
begin
i := i + 1;
S[j] := '*';
j:= j+1;
end
else if S[j] = 'B'
then
begin
delete(S, j, 1);
end;
end;
writeln('Количество символов А = ', i);
writeln(S);
end.
Я изменил цикл for на цикл while, чтобы можно было изменять переменную и вместо второго if написал else if , чтобы он не выходил за рамки строки