Одной из стандартных процедур, используемых при обработке строк, является процедура DELETE. Заголовок процедуры имеет вид
PROCEDURE DELETE (VAR S: STRING; I, N: INTEGER);
Опишем действие этой процедуры. Пусть L – длина строки S, и пусть I ≥ 1, а N ≥ 0. Процедура DELETE удаляет в строке S символы, находящиеся в позициях с номерами I, I+1, …, min {I+N-1, L}.
Пример 1.
PROCEDURE …;
VAR
S: STRING;
BEGIN
S:= ’вечер’;
DELETE (S, 3, 1);
{S = ’веер’}
S:= ’музыка’;
DELETE (S, 3, 2);
{S = ’мука’}
S:= ’вечер’;
DELETE (S, 5, 1);
{S = ’вече’}
S:= ’вечер’;
DELETE (S, 5, 2);
{S = ’вече’}
S:= ’вечер’;
DELETE (S, 3, 0);
{S = ’вечер’}
DELETE (S, 6, 1)
{S = ’вечер’}
END;
Другая стандартная процедура – INSERT. Её заголовок имеет вид
PROCEDURE INSERT (S1: STRING; VAR S2: STRING; I: INTEGER);
Опишем действие процедуры. Пусть L2 – длина строки S2, и пусть I ≥ 1. Процедура INSERT вставляет строку S1 в строку S2 с позиции (строки S2), имеющей номер, равный min {I, L2+1}.
Пример 2.
PROCEDURE …;
VAR
S1, S2: STRING;
BEGIN
S2:= ’веер’;
S1:= ’ч’;
INSERT (S1, S2, 3);
{S2 = ’вечер’}
S2:= ’веер’;
INSERT (’т’, S2, 3);
{S2 = ’ветер’}
S2:= ’веер’;
INSERT (’’, S2, 3);
|
|
{S2 = ’веер’}
S2:= ’ABC’;
INSERT (’DEF’, S2, 5)
{S2 = ’ABCDEF’}
END;
Рассмотрим стандартную функцию COPY. Её заголовок имеет вид
FUNCTION COPY (S: STRING; I, N: INTEGER): STRING;
Допустим, L – это длина строки S. И пусть I ≥ 1, а N ≥ 0. В этом случае значением функции COPY является подстрока строки S, состоящая из символов, находящихся в позициях с номерами I, I+1, …, min {I+N-1, L}.
Пример 3.
PROCEDURE …;
VAR
S, T: STRING;
BEGIN
S:= ’ABCD’;
T:= COPY (S, 2, 2);
{S = ’ABCD’, T = ’BC’}
T:= COPY (’ABCD’, 3, 2);
{T = ’CD’}
T:= COPY (S, 2, 7);
{S = ’ABCD’, T = ’BCD’}
T:= COPY (S, 2, 0);
{S = ’ABCD’, T = ’’}
T:= COPY (S, 5, 1)
{S = ’ABCD’, T = ’’}
END;
Рассмотрим стандартную функцию POS. Заголовок этой функции имеет вид.
FUNCTION POS (S1, S2: STRING): INTEGER;
Допустим, S1 и S2 – непустые строки. Если при этом в строке S2 есть, по крайней мере, одно вхождение строки S1, значением функции POS является номер позиции строки S2, с которой в строке S2 располагается первое (слева) вхождение строки S1.
Пусть S1 и S2 – непустые строки. Если при этом в строке S2 нет ни одного вхождения строки S1, значение функции POS равняется 0.
В случае, если, по крайней мере, одна из строк: S1 или S2 – пустая, значение функции POS также равняется 0.