Последний уровень раздела предыдущего изложения   Текущий уровень изложения предыдущего раздела   Текущий уровень изложения следующего раздела   Следующий уровень изложения текущего раздела   Уровень: Глоссарии:


СТРОКИ

Строковая константа, или строка, представляет собой совокупность символов, заключенную в апострофы. Строковая константа - это элементарная конструкция языка ПАСКАЛЬ. Строковые константы могут входить в состав выражений* . Как и числовые константы, они могут быть описаны в разделе описания констант .

Строковая переменная - это специальный вид одномерного массива символов. Для описания строк в TURBO PASCAL введен тип String:

type s = String;

Если строка содержит до 30 символов, ее тип будет определен как

type s = String[30];

Длина строки не может превышать 255 символов.

Тип String без указания длины совместим со всеми типами строк. Особенностью строковых переменных является то, что к ним можно обращаться и как к скалярным переменным, и как к массивам. Во втором случае применяется конструкция "переменная с индексом", что обеспечивает доступ к отдельным символам строки. При этом нижняя граница идекса равна 1. Отдельный символ строки совместим с типом Char .

В памяти ЭВМ строка занимает количество байтов, на единицу большее ее длины. Нулевой байт строки содержит ее длину.

Для строк определены операции присваивания , слияния (конкатенации) и сравнения.

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

var s1, s2, s3, s4, s5: String;

s1:='индус'; s2:='три'; s3:='али'; s4:='зация';

s5:=s1+s2+s3+s4; {результат = 'индустриализация';

Если количество символов результата превышает длину строки, лишние символы в конце строки отбрасываются.

Для сравнения строк применяются все операции отношения* . Сравнение строк происходит посимвольно, начиная с первого символа. Строки равны, если имеют одинаковую длину и посимвольно эквивалентны.

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

При вводе строковых переменных количество вводимых символов может быть меньше, чем длина строки. В этом случае вводимые символы размещаются с начала строки. Если количество вводимых символов превышает длину строки, лишние символы отбрасываются.

Инициализация строк может производиться как с помощью типизированных констант :

const sName : String[9]= 'IBM PC/AT';

так и с использованием второй разновидности процедуры FillChar:

FillChar( var V; NBytes: Word; C: Char );

например: FillChar(A, SizeOf(A), '0');

Для работы со строками в TURBO PASCAL включены процедуры и функции, которые обеспечивают редактирование и преобразование строк.

Редактирование строк выполняется с помощью процедур и функций Length(S), Concat(S1,S2,...Sn), Copy(S, Start, Len), Delete(S, Start, Len), Insert(S, SubS, Start), Pos(SubS, S).

Преобразование строк выполняется с помощью процедур Str(X,S) и Val(S, X, ErrCode).

Пример