Найти любое слово в исходной последовательности символов, начинающееся с комбинации букв но - Pascal ABC (13223)
Формулировка задачи:
Помогите решить задачу.
Дана строка s, содержащая менее чем 256 символов и представляющая собой набор слов, разделенных одним или несколькими пробелами. Найти любое слово в исходной последовательности символов, начинающееся с комбинации букв но. Использовать стандартные процедуры и функции в действиях над строками.
Принцип действия не понял, помогите хотя бы начать.
Решение задачи: «Найти любое слово в исходной последовательности символов, начинающееся с комбинации букв но»
textual
Листинг программы
const sub=' но'; space=' ';
var str : string;
i, j : byte;
k : boolean;
BEGIN
WriteLn('Введите строку:');
ReadLn(str);
Insert(space, str, 1);
Insert(space, str, Length(str)+1);
k:=true;
repeat
i:=0;
i:= Pos(sub, str);
j:=i;
if (i<>0) then
begin
k:=false;
repeat
Write(str[i]);
Inc(i);
until (str[i]=space);
Delete(str, j, i-j);
WriteLn;
end
until i=0;
if k then WriteLn('Нет слов.');
END.
Объяснение кода листинга программы
- В начале объявляются необходимые переменные: sub, space, str, i, j, k.
- Пользователю предлагается ввести строку.
- Введенная строка сохраняется в переменной str.
- Далее происходит вставка пробела в начало и конец строки.
- Переменная k устанавливается в значение true.
- Затем идет цикл repeat, который будет выполняться до тех пор, пока не будет найдено слово, начинающееся с комбинации букв
но. - Внутри цикла объявляется переменная i, которая будет использоваться для поиска первого символа в строке.
- Затем объявляется переменная j, которая будет использоваться для отслеживания текущего индекса символа
нов строке. - Если i<>0, то это означает, что в строке есть слово, начинающееся с
но. В этом случае переменная k устанавливается в false, чтобы начать вывод найденного слова. - Далее идет цикл repeat, который будет выполняться до тех пор, пока текущий символ в строке не станет пробелом.
- Внутри цикла выводится каждый символ строки, начиная с индекса i.
- После завершения цикла i, переменная k снова проверяется. Если k=false, значит, слово было найдено, и выводится сообщение
Нет слов.. - Цикл repeat завершается, когда i становится равным 0.
- Код заканчивается.