Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум10.doc
Скачиваний:
58
Добавлен:
14.02.2016
Размер:
296.96 Кб
Скачать

1.4. Стандартные процедуры и функции обработки строк

Основные действия над строками и символами реализуются с помощью встроенных процедур и функций, среди которых наиболее часто применяют следующие:

  • Delete(st,i,n)– процедура, удаляетnсимволов из строкиstначиная с символа с номеромi. Например, после выполнения операторов

st:=’строки’;

delete(st,2,2);

строка st примет значение ‘соки’.

  • Insert(s,st,i)– процедура, вставляет подстрокуsв строкуstначиная с символаi. Например:

st:=’ PC ’;

st2:=’IBMXT’;

insert(st1,st2,4);

даст значение переменной st2, равное строке ‘IBM PC XT.

Можно проиллюстрировать возможности рассмотренных двух процедур на примере преобразования слова «компьютеризация» в слово «генерация».

program demo_functions;

var words:string[79];

begin

writeln;

words:=’компьютеризация’;

writeln(words);

delete(words,1,7);

writeln(words);

delete(words,3,2);

writeln(words);

insert(‘г’,words,1);

writeln(words);

insert(‘не’,words,3);

writeln(words)

end.

В результате работы данной программы на экран будут выведены следующие строки:

компьютеризация

еризация

ерация

герация

генерация

  • Str(x,st)– процедура, преобразует числовую величинуxв строкуst. Например, фрагмент программы

x:=4.8E+03;

str(x,st);

даст строку st, равную‘4800’. После числовой величиныxможет быть указан формат вывода. Если он недостаточен, то поле автоматически расширяется до номинального. Например, если в предыдущем обращении добавить и формат вывода:

x:=4.8E3;

str(x:10,st);

то получим строку stразмером в 10 символов, в которой выводимое число выравнивается по правой границе поля вывода: ‘ 4800’.

  • Val(st,x,code)– процедура, преобразует строкуstв числоx. Если преобразование прошло успешно, то параметрcodeпринимает значение 0:

st:=’14.2E+02’;

val(st,k,n);

тогда k=1420иn=0. Если же преобразование строки в число невозможно, значение числовой величины будет не определено, а параметруcodeприсваивается номер первого ошибочного символа:

st:=’14.2A+0,2’;

val(st,k,n);

здесь значение kне определено, аn = 5.

  • Concat(x[,y,…,z])– функция типаstring; возвращает в строку, представляющую собой сцепление строк-параметровx, y, …,z. Например:

st1:=’Turbo’;

st2:=’Pascal’;

st:=concat(st1,’ ‘,st2);

дают значение переменной st, равной строке ‘Turbo Pascal.

  • Copy(st,i,n)– функция типаstring; копирует из строкиstровноnсимволов начиная с символа с номеромi. Еслиiбольше длины строки, то функция возвращает пробел, а приi>255возникает ошибка. Например, из строкиst1:=’акватория’с помощью оператораst:=copy(st1,5,3);будет выделена подстрокаst=’тор’. При этом исходная строкаst1остается без изменения.

  • Length(st)– функция типаinteger; возвращает длину строкиst, определяемую количеством символов, содержащихся в ней.

  • Pos(s,st)– функция типаinteger; отыскивает в строкеstпервое вхождение подстрокиsи возвращает номер позиции, с которой она начинается (если подстрока не найдена, возвращает нуль). Например, после выполнения операторов

st:=’В лесу родилась елочка, в лесу она росла’;

st1:=’лес’;

n:=pos(st1,st);

переменная n примет значение 3.

  • UpCase(ch)– функция типаchar, преобразует строчную буквуchв прописную. При этом обрабатываются только латинские буквы.

Пример 2. Пусть необходимо удалить из строкиst1первое вхождение подстрокиst2, независимо от регистра, в котором представлены строки. Это можно сделать с помощью следующего фрагмента программы:

{преобразование строки st1 к верхнему регистру}

for i:=1 to length(st1) do st1[i]:=UpCase(st1[i]);

{преобразование строки st2 к верхнему регистру}

for i:=1 to length(st2) do st2[i]:=UpCase(st2[i]);

{удаление подстроки st2 из строки st1}

Delete(st1,pos(st2,st1),length(st2));

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]