Преобразовать все идущие подряд пробелы в один - 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.
Объяснение кода листинга программы
- Ввод данных:
- Пользователю предлагается ввести символы строки, включая пробелы.
- Ввод продолжается до тех пор, пока не будет введен символ #13 (Enter) или не будет достигнут лимит в 1000 символов.
- Введенные символы сохраняются в переменной
s
.
- Обработка символов:
- Символ, введенный пользователем, сохраняется в переменной
a
. - Если введенный символ не равен #13, он выводится на экран.
- Если введенный символ равен #13, выводится символ #13.
- Если введенный символ является пробелом и предыдущий символ не является пробелом, то этот символ также сохраняется в массиве
s
. - Переменная
a
обновляется, чтобы содержать последний введенный символ. - Если введенный символ равен #13, переменная
a
обновляется, чтобы содержать символ #13.
- Символ, введенный пользователем, сохраняется в переменной
- Вывод данных:
- Выводятся все символы из массива
s
, начиная с первого символа и до конца массива.
- Выводятся все символы из массива
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д