Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ строки

Автор: *оля* 2.05.2010 23:46

помогите пожалуйста разобраться:

 
...
c:=[ ':', '(', '=', ')']; //нужно поставить пробел до и после этих знаков, если они встретились в строке
...
s:='';
while not eof(g) do begin
readln(g,line);
a:=line;
for i:= 1 to length(a) do begin
if a[i] in c then
s:= (copy(a,1,i-1)+' '+copy(a,i,1)+' '+ copy(a,i+1,length(a)-i)); //что-то здесь наверное не то
end;
writeln(f,s);
end;


.

Автор: Client 3.05.2010 0:15

insert(' ', a, i+1);
insert(' ', a, i);
И когда при работе со строкой ее длина меняется, то используй цикл while/repeat

Автор: volvo 3.05.2010 0:36

Не надо извращаться там, где оно не нужно... Все проще:

   readln(g,line);
a := '';
for i:= 1 to length(line) do
begin
if line[ i ] in c then a := a + ' ' + line[ i ] + ' '
else a := a + line[ i ]
end;
writeln(f, a);


Автор: *оля* 3.05.2010 0:50

мда, все действительно гораздо проще smile.gif
Вы как всегда правы, спасибо!)))