Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМКД-Паскаль-2012.docx
Скачиваний:
38
Добавлен:
01.05.2015
Размер:
561.45 Кб
Скачать

Тема 9. Строки. Строковые процедуры.

Тип string (строка) не входит в стандартный язык Паскаля, но он прочно вошел во все известные компиляторы с этого языка. Причин, по которым он был добавлен в язык, несколько. Для строк (последовательностей символов) этой операции явно не достаточно. Кроме того, в отличие от произвольных массивов, можно выделить несколько общих операций над массивами символов, которые часто применяются при решении совершенно различных задач. Эти операции были оформлены в виде стандартных процедур и функций. Если говорить о том, какую именно информацию удобно хранить в переменных строкового типа, то в первую очередь следует упомянуть последовательности символов, обозначающие имена собственные, например, фамилии людей или географические названия. Именно для подобных данных над строками были введены операции сравнения. Кроме того, одно слово любого текста (последовательность символов, окруженная разделителями) также удобно анализировать в переменной строкового типа. В строке можно хранить и содержимое одной строки большого текста. Сам же текст целиком удобнее хранить в файле, массиве символов или массиве строк.

Итак, строка – это последовательность символов (литер), заключенная в одиночные апострофы.

Значениями данного типа в Паскале являются различные последовательности символов длиной от 0 до 255 символов. При описании строковой переменной в квадратных скобках может быть указан ее максимальный размер, не превосходящий 255. Если такой размер опущен, то считается, что длина строки может достигать 255 символов. Указание размера строки влияет только на распределение памяти для хранения соответствующих переменных. Все переменные строковых типов совместимы между собой при выполнении различных операций над строками.

В разделе var строки описываются следующим образом:

или

Если <длина> не указана, то считается, что в строке 255 символов. Поэтому для экономии памяти следует по возможности точно указывать длину используемых строк.

Примеры описаний:

Необходимо отметить, что один символ и строка длиной в один символ

совершенно не эквивалентны друг другу. Вне зависимости от своей реальной длины, строка относится к конструируемым структурированным типам данных, а не к базовым порядковым.

При определении строкового типа данных после слова string указывается максимальное число символов, которое будет иметь значение переменной этого типа. Например:

Здесь s – переменная строкового типа с максимальной длиной строки 80 символов. Если в программе определить число символов больше, чем n для переменной типа string[n], лишние символы потеряются.

st2:= ' ' – пустая строка. st2:= '123' –длина строки равна 3.

Неименованные константы

В тексте программы на языке Pascal последовательность любых символов, заключенная в апострофы, воспринимается как символ или строка. Например:

Константе автоматически присваивается "минимальный" тип данных, достаточный для ее представления: char или string[k]. Поэтому попытка написать

вызовет ошибку уже на этапе компиляции.

Кроме того, не забывайте, что если константа длиннее той переменной-строки, куда ваша программа пытается ее записать, то в момент присваивания произойдет усечение ее до нужной длины.

Пустая строка задается двумя последовательными апострофами:

Если же необходимо сделать так, чтобы среди символов строки содержался и сам апостроф, его нужно удвоить:

Если теперь вывести на экран эту строку, то получится следующее:

Нетипизированные константы

Все правила задания символов и строк как неименованных констант остаются в силе и при задании именованных нетипизированных констант в специальном разделе const. Например:

Типизированные константы

Типизированная константа, которая будет иметь тип char или string, задается в разделе const следующим образом: