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