Некоторые стандартные процедуры и функции, используемые при обработке строк

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: