Процедуры и функции для работы со строками в Pascal
При работе со строками, как правило, возникает необходимость выполнять их копирование, вставку, удаление или поиск. Для эффективной реализации этих действий в Паскале предусмотрены стандартные процедуры и функции.
Функция concat(s1, s2, ..., sn) возвращает строку, являющуюся слиянием строк s1, s2, ..., sn.
Функция copy(s, start, len) возвращает подстроку длиной len, начинающуюся с позиции start строки s.
var s, sub: string; n, len: byte; begin write('Исходная строка: '); readln(s); write('Позиция начала подстроки: '); readln(n); write('Длина подстроки: '); readln(len); sub := copy(s, n, len); writeln('Копия подстроки: ', sub); writeln('Исходная строка: ', s) end.
Пример выполнения:
Исходная строка: one875two Позиция начала подстроки: 4 Длина подстроки: 3 Копия подстроки: 875 Исходная строка: one875two
Процедура delete(s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len.
var s: string; i, len: byte; begin write('Исходная строка: '); readln(s); write('Позиция начала удаления: '); readln(i); write('Длина удаляемой подстроки: '); readln(len); delete(s, i, len); writeln(s); end.
Пример выполнения:
Исходная строка: Apple Box Banana Позиция начала удаления: 7 Длина удаляемой подстроки: 4 Apple Banana
Процедура insert(subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start.
var s, sub: string; i: byte; begin writeln('Исходная строка: '); readln(s); writeln('Подстрока для вставки: '); readln(sub); write('Позиция вставки: '); readln(i); insert(sub, s, i); writeln(s); end.
Пример выполнения:
Исходная строка: Apple Banana Подстрока для вставки: Orange Позиция вставки: 7 Apple Orange Banana
Функция length(s) возвращает фактическую длину строки s, результат имеет тип byte.
var s: string; len: byte; begin readln(s); len := length(s); writeln(len); end.
Пример выполнения:
one two 7
Функция pos(subs, s) ищет вхождение подстроки subs в строку s и возвращает номер первого символа subs в s или нуль, если subs не содержится в s.
Процедуры преобразования типов
Процедура str(x, s) преобразует числовое значение x в строку s, при этом для x может быть задан формат, как в процедурах вывода write и writeln. Например:
var x: integer; s: string; begin x := 123; str(x:6, s); writeln(s); end.
Результат выполнения:
123
Процедура val(s, x, errcode) преобразует строку s в значение числовой переменной x, при этом строка s должна содержать символьное представление числа. В случае успешного преобразования переменная errcode равна нулю. Если же обнаружена ошибка, то errcode будет содержать номер позиции первого ошибочного символа, а значение x не определено. Параметр errcode является необязательным:
var x, errcode: integer; s: string; begin s := '123'; val(s, x, errcode); writeln('x1 = ', x + 1); writeln('errcode1 = ', errcode); s := '13ab'; val(s, x, errcode); writeln('x2 = ', x); writeln('errcode2 = ', errcode); s := '13'; val(s, x); writeln('x3 = ', x); s := '1a'; val(s, x); writeln('x4 = ', x); end.
Результат выполнения:
x1 = 124 errcode1 = 0 x2 = 0 errcode2 = 3 x3 = 13 x4 = 0