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

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

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

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

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

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

или

var < имя_строки >: string[[< длина >]]

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

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

var s1: string[10]; (*строка длиной 10 символов*) s2: string; (*строка длиной 255 символов*)

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

var c: char; s: string[1];

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

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

typebigstring[80]; var s: bigstring;

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

type abc =string[20]; var st 1: abc; st 2, st 3: string[8];

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: