Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Функция
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!