Задачи

Pascal. Строки

Строковый тип данных strring - это последовательность символов (тип данных char). Строки в PascalABC могут иметь произвольную длину, доступ к каждому символу осуществляется аналогично одномерным массивам - по индексу, порядковому номеру символа в строке.

Строки можно сравнивать операцией =.

Операция + для строк означает конкатенацию (слияние).

Для строк определены стандартные процедуры и функции, некоторые из которых приведены в таблице:

Функция/Процедура Описание
Length(s : string) Возвращает длину строки s (количество символов)
Copy(s : string, n, k : integer) Возвращает k символов строки s, начиная с n-го символа
Insert(subs, s : string, n : integer) Вставляет подстроку subs в строку s, начиная с n-го символа
Delete(s : string, n, k : integer) Удаляет k символов из строки s, начиная с n-го символа
Pos(subs, s: string, n: integer) Возвращает позицию первого символа подстроки subs в строке s, поиск начинается с n-го символа
Trim(s: string) Возвращает строку с удаленными начальными и конечными пробелами
IntToStr(a: integer) Возвращает строковое представление целого числа a
FloatToStr(a: real) Возвращает строковое представление вещественного числа a
StrToInt(s: string) Возвращает целое число, преобразованное из строкового представление целого числа
StrToInt64(s: string) Возвращает целое число типа int64, преобразованное из строкового представление целого числа
StrToReal(s: string) Возвращает вещественное число, преобразованное из строкового представление вещественного числа

Тип данных char является перечисляемым типом, т.е. все его элементы имеют порядковый номер и над ним возможны операции ord (взятие порядкого номера) pred и succ - предыдущий и последующий элемент соответственно. Функция chr возвращает символ по порядковому номеру, указанному в аргументе функции.

Также для символа возможна операция in - проверки вхождения в диапазон. Например, проверка является ли первый символ введенной строки латинской буквой или цифрой:

var
  s :string;
begin
  write('Введите строку: ');
  readln(s);
  if s[1] in ['a'..'z','A'..'Z','0'..'9'] then
    writeln('Цифра или буква')
  else writeln('Не цифра и не буква');
end.

Задача: Подсчитать количество заглавных и строчных латинских букв "A" и "a" в тексте, введенном пользователем.

Решение:

var
  s :string;
  count : integer;
begin
  write('Введите текст: ');
  readln(s);
  count := 0;
  for var i := 1 to Length(s) do
    if (s[i] = 'A') OR (s[i] = 'a') then
      Inc(count);
  writeln('Количество букв "A" и "a": ', count);
end.
 

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