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

1.2. Объявление строкового типа

Строка – это последовательность символов, заключенная в апострофы.Ее длина может изменяться от 0 до 255 символов. Определение строкового типа устанавливает максимальное количество символов, которое может иметь строка. Оно имеет следующий вид:

type <имя_типа> = string[<максимальная_длина_строки>];

Тип string(строка) в Турбо Паскале широко используется для обработки текстов и во многом похож на одномерный массив символовarray[0..N] of char. В отличие от массива количество символов в строке-переменной может меняться от 0 доN(N– максимальное количество символов в строке). ЗначениеNобъявляется в типеstring[N] и не должно превышать 255. При отсутствииNчитается, чтоN=255. Например:

const addres=’пр. Гагарина, 59/1’; {строковая константа}

type line=string[80]; {строковый тип}

var paragraph:line;{строка не более 80 символов}

name:string[12];{строка в 12 символов}

alphabet: string; {строка максимальной длины}

К любому символу в строке можно обратиться точно так же, как и к элементу одномерного массива, например:

var st:string;

. . .

if st[5]=Athen st[5]:=#49{занести в качестве пятого символа строки}

{вместо символа буквы ‘A’ символ цифры}

{‘1’ (ASCII-код ‘1’ соответствует числу 49)}

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

var st:string[10];

i:integer;

. . .

i:=10;

while st[i]=’ ‘ do

begin

dec(i);

st[0]:=chr(i)

end;

Текущую длину строки можно получить с помощью выражения ord(st[0])или с помощью встроенной функцииlength(st).

1.3. Операции над строками

Для строк применимы операции конкатенации и сравнения.

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

st:=’КИНО’+’ТЕАТР’;

При этом переменная stпринимает значениеКИНОТЕАТР.

Или :

var st, st1, st2:string[80];

begin

st1:=’Turbo’;

st2:=’Pascal’;

st:=st1+’ ‘+st2

end.

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

Операции отношенияпроводят сравнение двух строковых операндов и имеют приоритет более низкий, чем операция сцепления. Сравнение строк производится посимвольно слева направо до первой пары несовпадающих символов в соответствии сASCII-кодами соответствующих символов. И та строка считается больше, в которой несовпадающий символ имеет больший код в таблице символов. Так, например, отношение ‘космос’ > ‘космополит’дает значениеtrue, поскольку части строк ‘космо’являются общими, а в следующей паре символов ‘cи ‘п’символ ‘cимеет код больше, чем символ ‘п’.

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

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