Из каждого слова заданного текста удалить последнюю букву - Free Pascal
Формулировка задачи:
Привет всем, помогите в написании программы.
Из каждого слова заданного текста удалить последнюю букву.
Решение задачи: «Из каждого слова заданного текста удалить последнюю букву»
textual
Листинг программы
uses crt;
const rz=[' ',',','.']; //разделители слов, можно добавить
var s:string;
i:byte;
begin
clrscr;
writeln('Введите текст:');
readln(s);
s:=s+' ';
i:=1;
while i<=length(s)-1 do
if not(s[i] in rz)and(s[i+1] in rz) then delete(s,i,1)
else inc(i);
writeln('Удаление последних букв слов');
writeln(s);
readln
end.
Объяснение кода листинга программы
- Объявление переменных:
- s:string; строка для хранения введенного текста
- i:byte; переменная для подсчета символов в строке
- Ввод текста с помощью функции readln(s);
- Добавление пробела в конец строки s, чтобы разделить слова: s := s + ' ';
- Установка значения i равным 1 для начала цикла;
- Запуск цикла while, который будет выполняться до тех пор, пока i меньше или равно длине строки s минус один:
- Проверка условия: если символ s[i] не является разделителем (не входит в список rz) и следующий символ является разделителем, то удаление символа s[i] с помощью функции delete(s,i,1);
- Увеличение значения i на 1, чтобы перейти к следующему символу
- Вывод на экран сообщение
Удаление последних букв слови саму строку s; - Ожидание ввода с помощью функции readln.