Преобразовать строку, удаляя однобуквенные слова и лишние пробелы - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Дана символьная строка, содержащая предложение, заканчивающееся точкой. Преобразовать её, удаляя однобуквенные слова и лишние пробелы.

Решение задачи: «Преобразовать строку, удаляя однобуквенные слова и лишние пробелы»

textual
Листинг программы
  1. var
  2.   s,Sout,t:string;
  3.   i:integer;
  4. begin
  5.   write('введите строку:');readln(s);
  6.   s:=s+' ';
  7.   Sout:='';
  8.   for i:=1 to length(s) do
  9.     if s[i]=' ' then begin
  10.       if (length(t)=1) and (t<>'.') then t:=' ';
  11.       SOut:=SOut+t+' ';
  12.       t:='';
  13.     end
  14.     else t:=t+s[i];
  15.   while pos('  ',SOut)>0 do delete(SOut,Pos('  ',SOut),1);
  16.   writeln('полученная строка:',Sout);
  17.   readln;
  18. end.

Объяснение кода листинга программы

  1. Переменная s используется для хранения введенной пользователем строки.
  2. Переменная Sout используется для хранения результата обработки строки.
  3. Переменная t используется для хранения временного значения.
  4. Цикл for выполняется для каждого символа в строке s.
  5. Если символ является пробелом, то проверяется длина переменной t.
  6. Если длина переменной t равна 1 и значение не равно точке, то к переменной t добавляется пробел.
  7. Значение переменной t добавляется к переменной Sout.
  8. Переменная t очищается.
  9. Если символ не является пробелом, то он добавляется к переменной t.
  10. Цикл for повторяется до тех пор, пока длина строки s не станет равной нулю.
  11. Если в строке Sout есть двойные пробелы, то они удаляются.
  12. Выводится полученная строка.
  13. Программа ожидает ввода с клавиатуры.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы