Дана программа которая должна удалять пробелы из строки Program var15_stroki; Var...

0 голосов
52 просмотров

Дана программа которая должна удалять пробелы из строки
Program var15_stroki;
Var s:string;
i,endstr:integer;
Begin
Readln(s);
endstr:=Length(s);
for i:=2 to endstr do
if s[i]=' ' then
Delete(s,i,1);
Writeln(s);
Readln;
end.
Вот тут ошибка if s[i]=' ' then программа выдает Ошибка времени выполнения, Индекс находился вне границ массива
Нужно исправить


Информатика (595 баллов) | 52 просмотров
0

А какого размера строку вводите?

0

Просто вычеркнуть из строки все пробелы?

0

от 1 до 302, пробел может стоять

0

Вы цикл наоборот сделайте, от последнего символа к первому.for i:=endstr downto 1 do

Дан 1 ответ
0 голосов

Если по мере выполнения цикла for менять значение переменной его границы, то цикл НЕ будет меняться, а так как ты удаляешь пробелы, то длина строки уменьшается. В твоем примере нужно заменить цикл for на цикл while(i<=length(s)) ну и в цикле добавить i:=i+1;

(256 баллов)
0

сами-то попробовали?

0

у меня получилось

0

все верно тут