#16 Строки как одномерные массивы символов в Паскаль. Примеры кода программ

Ранее мы с вами познакомились с одномерными массивами, теперь посмотрим как эти знания помогут нам работать со строками (данными типа string).

Обход символов строки в цикле -- основная идея

Основная состоит в том, что строку можно читать посимвольно, обходя её как одномерный массив символов.

Сразу же рассмотрим пример, в котором символы полученной от пользователя строки мы выведем по одному, например в столбик:

var s: string;
    i: integer;
begin
  writeln('vvedite proizvolnuy stroku:');
  readln(s);

  for i:=1 to length(s) do // от 1 до длины строки
  begin
    writeln(s[i]); // выводим очередной символ строки
  end;

  readln();
end.  

-- здесь следует обратить внимание на то, что символы строки нумеруются с единицы. Для определения длины строки (в символах) мы использовали стандартную функцию length().

Примеры

Пример №1 -- сравнение символов строк

Задача:

Пользователь произвольную строку, посчитайте число вхождений в неё символа $w$.

Решение:

var s: string;
    i, n: integer;
begin
  writeln('vvedite proizvolnuy stroku:');
  readln(s);

  n := 0; // значение по умолчанию (инициализация переменной)

  for i:=1 to length(s) do // обходим символы строки
  begin
    if (s[i] = 'w') then // сравниваем очередной символ строки с литералом
       n := n + 1;
  end;

  writeln('Otvet: v vashey stroke simvol "w" vstrechaetsya ',
    n, ' raz.');
  readln();
end.       

Задачи для самостоятельного решения

  1. Пользователь вводит символ $k$ и строку $s$ -- посчитайте сколько раз символ $k$ встречается в строке $s$.
  2. Пользователь вводит произвольную строку, выведите на экран каждый пятый символ или сообщение об ошибке, если строка состоит менее чем из 5 символов.
  3. Пользователь вводит строку произвольных символов, посчитайте количество цифр в ней.

    Подсказка: для определения принадлежности символа цифре используйте идею из этого кода.

  4. Пользователь вводит строку произвольных символов, запишите первые 8 символов цифр в массив и выведете этот массив на экран.

    Подсказка: массив должен быть "of char".

  5. Пользователь вводит строку произвольных символов, выделите из неё массив первых 8 строковых литералов, которые являются числами. И выведите эти числа на экран.

    Например, из строки:

    rew2@#$$#435tr353453t4er4

    должны быть выделены подстроки:

    2
    435
    353453
    4
    4

    Подсказка: массив должен быть "of string".

  6. * Пользователь вводит произвольную строку, перестройте её в "ёлочку".
    Например, если он ввел:
    rewt34t54346t566

    то в ответ программа должны вывести:

    r
    ew
    t34
    t543
    46t56
    6