Удалить из строки слова, начинающиеся на заданную букву - Turbo Pascal
Формулировка задачи:
дано строку слов из латинских букв. разработать программу, которая будет удалять все слова на букву в с данного текста.
Решение задачи: «Удалить из строки слова, начинающиеся на заданную букву»
textual
Листинг программы
var
s:string;
c:char;
i,j:integer;
begin
write('Enter string:');readln(s);
write('Enter character:');readln(c);
for i:=length(s) downto 1 do
if (s[i]=c) and ((i=1) or (pos(s[i-1],' .,:;!?')>0)) then
while (i<=length(s)) and (pos(s[i],' .,:;!?')=0) do delete(s,i,1);
writeln('Result: "',s,'"');
end.
Объяснение кода листинга программы
- В начале объявляются переменные: s - строка, c - символ, i - целое число, j - целое число.
- Затем идет запрос на ввод строки и символа.
- Далее идет цикл for, который начинается с индекса length(s) и идет вниз до 1. Внутри цикла проверяется условие: если текущий символ в строке равен заданному символу и либо предыдущий символ является одним из разрешенных ('.', ':', ';', '!', '?'), либо текущий символ является первым символом строки. Если условие выполняется, то цикл while повторяется, пока текущий символ в строке является допустимым и не равен нулю. В этот момент удаляется символ из строки.
- После завершения цикла выводится результат.
- Код завершается.