Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль-конспект ИНФОРМАТИКА.doc
Скачиваний:
59
Добавлен:
09.04.2015
Размер:
639.49 Кб
Скачать

5.4. Строки

Тип String(строка) в Паскале широко используется для обработки текстов и во многом похож на одномерный массив символовArray[0..N]ofChar. Однако в отличие от массива количество символов в строке – переменной может меняться от 0 доN, гдеN– максимальное количество символов в строке. ЗначениеNопределяется в разделе объявления типаString[N] и может быть любой константой порядкового типа, но не больше 255:N255. Можно не указыватьN, в этом случае длина строки принимается максимально возможной:N= 255.

Строка трактуется как цепочка символов. К любому символу в строке можно обратится точно так же, как к элементу одномерного массива Array[0..N]ofChar.

Пример:

Var st: String;

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

if st[5]= ‘A’ then …….

Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки. Первый значащий символ строки занимает второй и имеет индекс 1. Над длиной строки можно совершать необходимые действия и таким способом менять длину строки.

Пример:

Var st:String[10];

I:Integer;

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

st[0]:=5;

Значение Ord(st[0]), то естьтекущую длину строкиможно получить с помощью функцииlength(st).

К строке можно применить операцию + (сцепление строк), например:

St:=’a’+’b’;{ ab}

St:=st+’c’; { abc}

Если длина сцепленной строки превысит максимально допустимую длину N, то «лишние» символы отбрасываются.

Пример:

Var st :String [1];

Begin st:=’123’;

Writeln(st); {1}

End;

Кроме сцепления строк, все остальные действия над строками (и символами) реализуются с помощью встроенных функций.

1) Concat (S1<, S2, S3,…SN>)– функция типа String, сцепление строк;

2) Copy (имя строки,№ нач. символа, кол-во символов)– функция копирования;

  1. Delete (имя строки,№ нач. символа, кол-во символов)– функция удаления;

  2. Insert (имя подстроки, имя строки, № нач. символа в строке)– вставка;

  3. Length (имя строки)– функция типа Integer, вычисляет длину строки;

  4. Pos (имя подстроки, имя строки)- функция типа Integer, отыскивает в строке первое вхождение подстроки и дает № позиции, с которой она начинается; если подстрока не найдена, значение функции будет = 0;

  5. Str(числоRealилиInteger<: общая ширина поля<: кол-во симв. в дроб. части>>, имя строки) – процедура, преобразующая число типаRealилиIntegerв строку символов так, как это делает процедураWritelnперед вызовом; параметры, если они присутствуют, задают формат преобразования;

  6. Val(имя строки, числоRealилиInteger, параметр) – процедура, преобразующая строку символов во внутреннее представление целое или вещественное числа; параметр = 0, если преобразование проведено успешно, в противном случае он содержит № позиции в строке, где обнаружен ошибочный символ;

  7. Upcase(символ) – функция типаChar, возвращает символ в верхнем регистре, если он определен для него, либо сам символ, если для него нет верхнего регистра.

Пример: Upcase(‘a’) дастA,

Upcase(‘2’) даст 2.

Пример:

Var

x: Real;

y: Integer;

st, st1: String;

  • - - - - - - - - - - - - - - - -

st:= concat (‘12’,’345’); (*получится st  12345*)

st1:= copy (st, 3, lenght(st)-2); (*получится st1  345*)

insert(‘-’,st1,2); (*получится st1  3-45*)

delete(st, pos(‘2’,st),3); (*получится st  15*)

str(pi:6:2,st); (*получится st  3.14*)

st1:=’3.1415’; (*получитсяst13.1415*)

val(st1,x,y); (*получитсяy=2,x– какой был*)

Операции отношения

= <> > < >= <=

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

Пример: Операции дают значениеtrue:

‘turbo’<’turbo-pascal’;

‘A’<>’IFF’;

‘ПАскаль’<’Паскаль’;