Преобразовать строку, удаляя однобуквенные слова и лишние пробелы - Free Pascal
Формулировка задачи:
Дана символьная строка, содержащая предложение, заканчивающееся точкой. Преобразовать её, удаляя однобуквенные слова и лишние пробелы.
Решение задачи: «Преобразовать строку, удаляя однобуквенные слова и лишние пробелы»
textual
Листинг программы
var
s,Sout,t:string;
i:integer;
begin
write('введите строку:');readln(s);
s:=s+' ';
Sout:='';
for i:=1 to length(s) do
if s[i]=' ' then begin
if (length(t)=1) and (t<>'.') then t:=' ';
SOut:=SOut+t+' ';
t:='';
end
else t:=t+s[i];
while pos(' ',SOut)>0 do delete(SOut,Pos(' ',SOut),1);
writeln('полученная строка:',Sout);
readln;
end.
Объяснение кода листинга программы
- Переменная
sиспользуется для хранения введенной пользователем строки. - Переменная
Soutиспользуется для хранения результата обработки строки. - Переменная
tиспользуется для хранения временного значения. - Цикл
forвыполняется для каждого символа в строкеs. - Если символ является пробелом, то проверяется длина переменной
t. - Если длина переменной
tравна 1 и значение не равно точке, то к переменнойtдобавляется пробел. - Значение переменной
tдобавляется к переменнойSout. - Переменная
tочищается. - Если символ не является пробелом, то он добавляется к переменной
t. - Цикл
forповторяется до тех пор, пока длина строкиsне станет равной нулю. - Если в строке
Soutесть двойные пробелы, то они удаляются. - Выводится полученная строка.
- Программа ожидает ввода с клавиатуры.