Процедуры и функции для работы со строками
При работе со строками, как правило, возникает необходимость выполнять их копирование, вставку, удаление или поиск. Для эффективной реализации этих действий в Паскале предусмотрены стандартные процедуры и функции.
Функция 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