Преобразовать все идущие подряд пробелы в один - Pascal ABC

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

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

Считывайте по одному символу, и со второго шага проверяйте, не равен ли элемент пробелу, если да, то проверьте, не равен ли элемент предыдущему, если равен то не записывайте очередной элемент в массив, который будем выводить, не забудьте записать первый символ. Дана строка, Вам требуется преобразовать все идущие подряд пробелы в один. Формат входных данных Длина строки не превосходит 1000. Формат выходных данных Выведите измененную строку. Пример входных и выходных данных Входные данные Выходные данные ␣d␣hky␣k ␣d␣hky␣k ␣␣tnbnv␣␣l ␣tnbnv␣l

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

textual
Листинг программы
uses crt;
var s:array[1..1000] of char;
    a,b:char;
    n,i:integer;
begin
writeln('Введите символы строки в том числе последовательности пробелов');
writeln('окончание ввода Enter или 1000 символов');
n:=1;
repeat
a:=readkey; //читаем код первого символа, он не Enter
until a<>#13;
write(a);/выводим
s[1]:=a; //пишем в массив
repeat  //вводим остальные
b:=readkey;
if b<>#13 then write(b);
if not(b in [#13,' '])or((b=' ')and(a<>' ')) then
//если не Enter и не пробел или пробел, но перед ним не пробел
 begin
  n:=n+1; //считаем
  s[n]:=b;//в массив
 end;
a:=b; //запоминаем, будет предыдущим
if b=#13 then writeln;
until (b=#13)or(n=1000);
writeln;
for i:=1 to n do
write(s[i]);
end.

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

  1. Ввод данных:
    • Пользователю предлагается ввести символы строки, включая пробелы.
    • Ввод продолжается до тех пор, пока не будет введен символ #13 (Enter) или не будет достигнут лимит в 1000 символов.
    • Введенные символы сохраняются в переменной s.
  2. Обработка символов:
    • Символ, введенный пользователем, сохраняется в переменной a.
    • Если введенный символ не равен #13, он выводится на экран.
    • Если введенный символ равен #13, выводится символ #13.
    • Если введенный символ является пробелом и предыдущий символ не является пробелом, то этот символ также сохраняется в массиве s.
    • Переменная a обновляется, чтобы содержать последний введенный символ.
    • Если введенный символ равен #13, переменная a обновляется, чтобы содержать символ #13.
  3. Вывод данных:
    • Выводятся все символы из массива s, начиная с первого символа и до конца массива.

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


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

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

6   голосов , оценка 4.5 из 5
Похожие ответы