Написать программу на Паскале АВС.
Дана строка,в которой есть точки,запятые,пробелы,тире,слова. В общем,много-много всего. Нужно преобразовать строку по правилам Ворда. То есть
1.между словами один пробел
2.перед точкой или запятой пробела нет,но после-есть
3. тире выделяется пробелами с двух сторон
Вот и все!
Ответы
Ответ дал:
0
var s,s1:string; i,p:integer;
begin
writeln('Введите строку:');
readln(s);
s1:='';
for i:=1 to length(s) do
case s[i] of
',','.' : s1:=s1+s[i]+' ';
'-' : s1:=s1+' - ';
else s1:=s1+s[i];
end;
p:=pos(' ',s1);
while p>0 do
begin delete(s1,p,1); p:=pos(' ',s1); end;
p:=pos(' ,',s1);
while p>0 do
begin delete(s1,p,1); p:=pos(' ,',s1); end;
p:=pos(' .',s1);
while p>0 do
begin delete(s1,p,1); p:=pos(' .',s1); end;
writeln(s1);
end.
Пример:
Введите строку:
перед точкой или запятой пробела нет ,но после -есть .
перед точкой или запятой пробела нет, но после - есть.
begin
writeln('Введите строку:');
readln(s);
s1:='';
for i:=1 to length(s) do
case s[i] of
',','.' : s1:=s1+s[i]+' ';
'-' : s1:=s1+' - ';
else s1:=s1+s[i];
end;
p:=pos(' ',s1);
while p>0 do
begin delete(s1,p,1); p:=pos(' ',s1); end;
p:=pos(' ,',s1);
while p>0 do
begin delete(s1,p,1); p:=pos(' ,',s1); end;
p:=pos(' .',s1);
while p>0 do
begin delete(s1,p,1); p:=pos(' .',s1); end;
writeln(s1);
end.
Пример:
Введите строку:
перед точкой или запятой пробела нет ,но после -есть .
перед точкой или запятой пробела нет, но после - есть.
Ответ дал:
0
ГОСПОДИ ИИСУСЕ СПАСИБО БОЛЬШОЕ ВАМ ДОБРЫЙ ЧЕЛОВЕК Я ПИШУ КОД УЖЕ 3 ЧАСА
Вас заинтересует
1 год назад
1 год назад
6 лет назад
8 лет назад
8 лет назад
9 лет назад