Функция pos позволяет определить положение подстроки в строке. В общем виде обращение к функции выглядит так: pos (Подстрока, строка);
где Подстрока – строковая константа или переменная, которую надо найти в строковой константе или переменной строка.
Например, в результате выполнения команды: p:= pos (‘Пе’, ‘Санкт-Петербург’); значение переменной p будет равно 7. Если в строке нет искомой подстроки, то функция возвращает ноль.
Примеры определения позиции
• k:=pos(‘р’, ’мир’); k=3
• s:=‘колокол’;
n:=pos(‘кол’, s); n=1
• s1:=‘ок’; s2:=‘кок’;
i:=pos(s1, s2); i=2
• k:=pos(‘п’, ’мама’); k=0
Например
var
st: string;
begin
write (‘Введите строку: ’);
readln (st);
while (pos (‘ ‘, st)=1) and (length (st)>0) do
delete (st, 1, 1);
write (‘Строка без начальных пробелов: ’, st);
end.
Данная программа использует функцию pos и процедуру delete для удаления пробелов в начале введенной с клавиатуры строки. пробелы удаляются в цикле while до тех пор, пока функция pos обнаруживает пробел в начале строки (значение pos при этом равно единице). Проверка условия length (st)>0 нужна, так как возможно, что введенная с клавиатуры строка состоит вся из пробелов.
Задачи:
1. Дано предложение, в котором имеется несколько букв "е". Найти:
а) порядковый номер первой из них;
б) порядковый номер последней из них.
2. Дано предложение. Определить, есть ли в нем буква "а". В случае положительного ответа найти также порядковый номер первой из них.
3. Дано предложение. Определить количество букв "н", предшествующих первой запятой предложения.
4. Дано предложение. Напечатать все символы, расположенные между первой и второй запятой. Если второй запятой нет, то должны быть напечатаны все символы, расположенные после единственной имеющейся запятой.
5. Дано предложение, в котором имеются одна буква "с" и одна буква "т". Определить, какая из них встречается раньше (при просмотре слова слева направо).