| ||||||||||||||||||||||||||
|
2. Строки.Строка - это последовательность символов кодовой таблицы ПЭВМ. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. 2.1. Строковые константы и переменные.Для определения данных строкового типа используется служебное слово string, за которым может следовать заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки равна 255 байт (символов). Данные типа string (строки символов), как и числовые данные, подразделяются на константы и переменные. Строковые константы - это последовательность символов, заключенных в апострофы. Например, 'ABC 3A', 'Пример 2'. Строковые константы могут быть описаны в разделе констант, например: const Str = 'STROKA'; C = 'СТРОКА'; Турбо-Паскаль реализует переменные типа string, которые являются расширением стандарта языка Паскаль. Описание строковых переменных имеет вид: Здесь N - целая константа, указывающая максимальную
длину строки (количество символов в строке). В Турбо Паскале 1 <= N <=
255. Возможно также описание вида: var имя_перем :
string; которое определяет строковую переменную максимально возможной длины (в
255 символов). Для определения объема памяти в байтах, требуемой для размещения строки, к значению ее максимальной длины прибавляется 1. Например, для размещения в памяти переменных FStr, St1, St2 требуется соответственно 126, 255 и 51 байт. Дополнительный байт расположен в самом начале строки (имеет нулевой номер) и содержит значение текущей длины строки. В Турбо Паскале переменные типа string[N] занимают N+1 байт. Так, в приведенном примере St3 будет занимать 51 байт. Строковые переменные аналогичны массивам типа char. Их отличием является то, что число символов (или текущая длина строки) может динамически меняться в интервале от нуля до заданного верхнего значения N. Как и в массивах, к отдельным символам строки можно обратиться с помощью индексов в квадратных скобках: St1[1], St2[8]. Нулевой индекс определяет позицию, в которой содержится текущая длина строки. Турбо Паскаль допускает также использование
типизованных констант строкового типа: 2.2. Операции над строковыми данными.Строковые данные могут участвовать в строковых выражениях, состоящих из строковых констант, переменных типа string и char, знаков операций и встроенных функций. При этом над строковыми данными допустимы следующие операции: присваивание, сцепление (конкатенация) и отношения. 2.2.1. Операция присваивания. Общий вид этой операции
следующий: Если длина строкового выражения превышает
максимальную длину строковой переменной, то все лишние символы справа
отбрасываются. Ввод и вывод значений строковых переменных
осуществляется без апострофов. Например, для выполнения оператора ReadLn(Str) во
входном файле необходимо набрать ABCD, начиная с 1-й позиции. 2.2.2. Операция сцепления (конкатенация). Эта операция применяется для сцепления нескольких
строк в одну результирующую строку. Для обозначения операции сцепления в Турбо
Паскале используется знак "+". 2.2.3. Операции отношения.Операции отношения (=, <, >, <>, >=, <=) проводят сравнение двух строковых операндов и имеют более низкий приоритет, чем операция сцепления. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается большей, в которой первый несовпадающий символ имеет больший номер в таблице ASCII. Результат выполнения операций отношения над
строковыми операндами всегда имеет логический тип и принимает значение True
(истинно) или False (ложно). Строки считаются равными, если полностью совпадают
по текущей (а не по объявленной) длине и содержат одни и те же символы.
Например, в результате выполнения программы Следует также учитывать, что одинаковые прописные и строчные буквы в строках определяют разные значения строковых переменных. Так, если S1 := 'ABC', а S2 := 'Abc', то S1 не равно S2. Для сравнения значений строковых типов применяются
следующие правила: |
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||||
© Copyright(c) 2004 Amro Group. All rights reserved |
|