Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Функция

length (s: string):word;

вычисляет текущую длину строки s (количество символов в строке). Строка может быть задана идентифи­катором или непосредственно, в апострофах.

s:=¢Петербург¢

п:=length(s); { n = 9}

k:=length (¢Мы изучаем Паскаль¢); { k = 18}

m:=length ("); { m =0}

Пример. Дана строка s. Создать строку s 1из символов строки s, вставив после каждого символа ¢ a ¢ символ ¢ c ¢.

s 1:=’¢;

for i:=1 to length (s)do

begin s 1:= s 1 + s [ i ];

if s[ i ] = ¢ a ¢ then s 1:= s 1 + ¢c¢

end;

Функция

pos (subs, s:string):byte;

вычисляет номер символа в строке s,с которого начинается первое включение в s подстроки subs. Если же s не содержит в себе subs, то функция даст результат 0.

s:=¢Компьютер¢;

п:=pos(¢ю¢, s); { п = 6}

s 1:=¢Kомп¢;

k:=pos(s 1, s); { k = 1}

Очевидным недостатком функции pos является то, что она возвращает только первую позицию subs в s от начала строки, т. е. после обращения к функции

р:= pos (¢noo¢, ¢Boonoonoonoos¢);

она завершит свою работу, вернув значение 4, хотя есть еще и 7, и 10.

Функция

сору (s:string; start, len:integer):string;

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

scopy:=сору(¢ ABС ***123¢, 4, 3); {scopy ='***'}

scopy:=сору(¢ АВС ¢,4, 3); {scopy ="}

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

Процедура

delete (var s:string; start, len:integer);

удаляет из строки s len символов, начиная ссимвола с номером start:

s:=¢СТРОКА¢;

delete (s, 2, 3); { s ='СКА'}

После удаления подстроки ее оставшиеся части s как бы склеиваются.

Если start = 0 или превышает длину строки s, то строка не изменяется. Также не изменит строку значение len = 0. При len большем, чем остаток строки, будет удалена подстрока от start и до конца s. Это можно использовать при «подрезании» строк до заданной величины:

delete (s, 17, 255);

Здесь строки s длиной менее 17 символов пройдут через процедуру неизменными, а все остальные будут укорочены до длины в 16 символов.

Если start > 255, возникнет ошибка при выполнении.

Процедура

insert (subs:string; var s:string; start:integer);

вставляет строку subs в строку s,начиная с позиции start:

s:=¢Начало–конец¢;

insert (¢середина–¢, s, 8);

{теперь s = ¢Начало–середина–конец¢}

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





Дата публикования: 2014-11-28; Прочитано: 254 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...