|
|
|||
|
wm-help.net -> Электронная библиотека -> Pascal -> Pascal. Курс лекций. -> 24. Строки24. Строки
24. Строки
Особое место в языке ПАСКАЛЬ занимают массивы символов. Стандарт- ный ПАСКАЛЬ допускает два способа хранения символьных массивов в па- мяти ЭВМ: распакованный и упакованный. Распакованные массивы символов хранятся в памяти ЭВМ по одному символу в машинном слове, упакованные - по одному символу в байте. При описании упакованного массива симво- лов используют служебное слово PACKED, например:
var MAS: Packed Array[1..20] of Char;
Описание распакованного массива символов имеет вид:
var M: Array[1..20] of char;
Для преобразования символьного массива из распакованной формы в упакованную и наоборот, из упакованной в распакованную, в язык ПАС- КАЛЬ введены две стандартные функции Pack, UnPack. Упакованный массив символов образует символьную строку. Символьная строка может быть либо строковой константой, либо строковой перемен- ной. Строковая константа, или строка, представляет собой совокупность символов, заключенную в апострофы. Строка - это элементарная конс- трукция языка ПАСКАЛЬ. Строковые константы могут входить в состав вы- ражений. Как и числовые константы, они могут быть описаны в разделе описания констант. Строковые переменные - это одномерные упакованные массивы симво- лов, для описания которых в TURBO PASCAL введен тип String. Например, если строка содержит до 30 символов, ее тип будет опре- делен как
type s= String[30];
Длина строки не может содержать более, чем 255 символов. В TURBO PASCAL определено понятие строки переменной длины, в этом случае ее описание задается как
type s= String;
Тип String без указания длины совместим со всеми типами строк. Особенностью строковых переменных является то, что к ним можно об- ращаться как к скалярным переменным, так и к массивам. Во втором слу- чае применяется конструкция "переменная с индексом", что обеспечивает доступ к отдельным символам строки. При этом нижняя граница идекса равна 1. Отдельный символ строки совместим с типом Char. В памяти ЭВМ строка занимает количество байтов, на единицу большее ее длины. Нулевой байт строки содержит ее длину. Для строк определены операции присваивания, слияния (конкатенации) и сравнения.
Для сравнения строк применяются все операции отношения. Сравнение строк происходит посимвольно, начиная с первого символа. Строки рав- ны, если имеют одинаковую длину и посимвольно эквивалентны. Строки могут быть элементами списка ввода - вывода, при этом запи- сывается имя строки без индекса. При вводе строковых переменных количество вводимых символов может быть меньше, чем длина строки. В этом случае вводимые символы разме- щаются с начала строки, а оставшиеся байты заполняются пробелами. Ес- ли количество вводимых символов превышает длину строки, лишние символы отбрасываются. Инициализация строк может производиться как с помощью типизирован- ных констант:
const sName: String[9]= 'IBM PC/AT';
так и с использованием второй разновидности функции FillChar:
FillChar( var V; NBytes: Word; C: Char );
например:
FillChar(A, SizeOf(A), '0');
Для работы со строками в TURBO PASCAL включены процедуры и функ- ции, которые обеспечивают редактирование и преобразование строк. |
|
| бодибилдинг | Строим Домик | RU-домены за 170 рублей | Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2009. При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны! Время генерации страницы: 0.049 |