Помощь - Поиск - Пользователи - Календарь
Полная версия: задача с заменой символов
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Витёк
Нам задали сделать задачку. Вот условие: А) заменить все (!) знаки на (.)
Б) затем все точки заменить на (...).
Первую часть я сделал так:
 var s:string;
i:integer;
begin
readln(s);
for i:=1 to length(s) do
if s[i] ='!' then s[i]:='.';
writeln(s);
end.

Ну а вот с заменой точки в этой же программе выходит ошибка. Я хотел сделать это также как и с (!), но не получилось. Объясните пожалйста что я не так сделал.
klem4
Вот так например:

i := 1;

while (i <= Length(s)) do
if s[i] = '.' then begin
Insert('..', s, i + 1);
inc(i, 3);
end else inc(i);
volvo
Цитата
Объясните пожалйста что я не так сделал
Если бы ты показал, КАК ты сделал вторую часть, мы бы подсказали, где твоя ошибка... А так - телепатически - ты в начале цикла нашел длину строки, и проходишь по ней... Но при добавлении символов в строку ее длина изменяется, а твоя программа об этом не знает, так что For здесь не пойдет явно...

Не забывай, конечное значение переменной для For-а не вычисляется на каждой итерации, оно вычисляется ПЕРЕД началом цикла, и сохраняется...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.