var
s:string;
begin
readln(s);
while pos(' ',s)<>0 do
delete(s,pos(' ',s),1);
while s[1]=' ' do
delete(s,1,1);
while s[length(s)]=' ' do
delete(s,length(s),1);
writeln(s)
end.
Работа с файлами (Расставить пробелы)
Строка символов представляет собой текст, слова в котором разделены одним или более пробелами. Преобразовать эту строку так, чтобы все слова разделились ровно одним пробелом, а ведущие и хвостовые пробелы отсутствовали.
Условие выполнения: Ввод/вывод должны быть выполнены с помощью файлов.
вот я тут голову ломаю совсем не выходит
P.S программа сделанная без использвования файлами, надо ее решить с использвованием их
Код:
и практически аналогичная задача
Дана строка, состоящая из нескольких слов, между соседними словами не менее одного пробела, за последним словом - точка. Во все слова, за первым символом, вставить пробел.
Код:
uses strings;
Var
str1,str2:array[0..50] of char;
i,k,n:integer;
begin
writeln('vvedite stroku:');
readln(str1);
n:=strlen(str1);
k:=0;
while (str1[k]<>'.') and (k<n) do k:=k+1;
n:=k-1;
str2[0]:=str1[0];
k:=0;
if str1[0]<>' ' then k:=k+1; str2[k]:=' ';
for i:=1 to n do
begin
k:=k+1; str2[k]:=str1;
if (str1<>' ') and (str1[i-1]=' ') then begin k:=k+1; str2[k]:=' ';end;
end;
writeln(str2);
readln;
end.
Var
str1,str2:array[0..50] of char;
i,k,n:integer;
begin
writeln('vvedite stroku:');
readln(str1);
n:=strlen(str1);
k:=0;
while (str1[k]<>'.') and (k<n) do k:=k+1;
n:=k-1;
str2[0]:=str1[0];
k:=0;
if str1[0]<>' ' then k:=k+1; str2[k]:=' ';
for i:=1 to n do
begin
k:=k+1; str2[k]:=str1;
if (str1<>' ') and (str1[i-1]=' ') then begin k:=k+1; str2[k]:=' ';end;
end;
writeln(str2);
readln;
end.
тут.
Я так понимаю, Вы просто пока не умеете работать с файлами? Тогда достаточно посмотреть нужные функции, примеры к ним. Например,