Дана программа которая должна удалять пробелы из строки 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. Во...
Дана программа которая должна удалять пробелы из строки
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 программа выдает Ошибка времени выполнения, Индекс находился вне границ массива
Нужно исправить
Ответ(ы) на вопрос:
Если по мере выполнения цикла for менять значение переменной его границы, то цикл НЕ будет меняться, а так как ты удаляешь пробелы, то длина строки уменьшается. В твоем примере нужно заменить цикл for на цикл while(i<=length(s)) ну и в цикле добавить i:=i+1;
Не нашли ответ?
Похожие вопросы