Персональная страничка
| ||
Предыдущий раздел:
Следующий раздел:
Пример 1: Подсчитать, сколько раз в строке встречается пробел.
Узнать, встречается ли он в принципе можно, используя функцию Pos. Если она вернет 0, то пробел не встречается, иначе мы узнаем, где именно находится первый пробел, однако ничего не узнаем об остальных пробелах.
Для решения задачи переберем все символы строки и, используя переменную счетчик, подсчитаем, сколько из них являются пробелами. Оформим решение в виде функции:
function SpaceNumber(s: string): integer; var i, n: integer; begin n := 0; for i := 1 to length(s) do if s[i] = ' ' then n := n + 1; SpaceNumber := n; end;
Пример 2: Стандартная функция Pos обнаруживает первое появление некоторой подстроки. Создадим функцию, которая возвращает n-е появление подстроки.
function PosN(Substr, S, n): integer; var i, pn, SubLen: integer; begin SubLen := length(Substr); pn := 0; {В этой переменной считаем, сколько раз уже встретили подстроку} i:=1; while (pn < n)and(i <= lenth(S) – SubLen + 1) do {Перебираем элементы строки, пока не найдем нужное коли- чество появлений подстроки или не дойдем до конца строки} begin if Substr = Copy(S, i, SubLen) then pn := pn + 1; i := i + 1; end; if pn = n then PosN := i else PosN := 0; {Если подстрока встречается меньше, чем n раз, возвращаем 0} end;
Следующий раздел:
Предыдущий раздел: