Редактирование строк

1. Функция length – возвращает текущую длину строки, т.е. количество литер, содержащихся в данной момент в данной строке.

Вместо нее можно пользоваться конструкцией Ord(s[0]).

Var

st1:string[10];

L:byte;

---------------------------------------

St1:='Иванов';

L:= length(st1); {L=6}

2. Функция concat производит сцепление (слияние) переданных в нее строк. Вместо нее можно пользоваться операцией ‘+’.

S3:= concat (s1,s2); {можно s3:=s1+s2;}

Если сумма длин строк превышает максимальную длину строки в левой части, то излишек отсекается.

3. Функция copy – позволяет выделить из строки s последовательность из len символов, начиная с символа start. Если start больше длины всей строки s, то функция вернет пустую строку, а если len больше чем число символов от start до конца строки s, то вернется остаток строки s от start до конца.

Scopy:=copy ('ABC***123',4,3); {scopy= '***'}

Scopy:= copy('ABC', 4,3); {scopy=''}

Scopy:=copy ('ABC***123',4,11); {scopy='***123'}

4. Процедура delete – видоизменяет строку s, стирая len символов, начиная с символа с номером start.

S:='строка';

Delete (s,2,4); {s='са'}

После стирания ее оставшиеся части как бы склеиваются. Если start=0 или превышает длину строки s или len=0, то строка не изменится.

При len большем, чем остаток строки, будет удалена строка от start до конца s. Это можно использовать при подрезании строк до заданной величины.

Delete (s,16,255)

Строки, длиною меньше 16 символов пройдут через процедуру неизменными, все остальные будут укорочены до длины в 15 символов.

5. Процедура insert выполняет работу, противоположную той, которую выполняет delete, вставляет подстроку subs в строку s, начиная с позиции start.

Пример:

S:=’Начало-конец’;

Insert ('середина-',s,8);{теперь s=' Начало-середина-конец'}

Если измененная строка s оказывается слишком длинной, то она автоматически укорачивается до объявленной длины s (при этом теряется правый конец).

Если позиция start больше текущей длины строки, то будет иметь место эффект конкатенации.

6. Функция pos(subs,s) возвращает номер символа в строке S, с которого начинается включение в S подстроки subs. Если s не содержит subs, то функция вернет 0. Недостатком функции pos является то, что она возвращает ближайшую стартовую позицию subs в s от начала строки.

Например:

Str1:='abcdef';

Y:=pos('de',str1); {y=4}

Y:=pos('r',str1); {y=0}

Пример. Программа подсчитывает число букв 'а' в введенном слове и заменяет их буквами 'б'.

Program change_;

Var

s:string;

Procedure CangeChar (var s:string);

N:byte; {счетчик букв "а"}

Begin

N:=0;

While pos('a',s) > 0 do { пока в слове есть буквы "а"}

Begin

Inc(n); { увеличиваем счетчик}

s[pos('a',s)]:=’б’;{ замена символа "а" на "б"}

End;

Writeln ('в слове ',n:3,' букв <a>');

End;

Begin

write ('Введите исходную строку');

Readln (s);

ChangeChar(s);

Writeln ('Получилась строка:',s)

End.


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



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