Строки можно присваивать, сливать и сравнивать. Слияние строк записывается в естественном виде (рис. 8.3). Если сумма получается длиннее, чем описанная длина левой части оператора присваивания, излишек отсекается.
Сравнение строк происходит посимвольно, начиная от первого символа в строке. Строки равны, если имеют одинаковую длину и посимвольно эквивалентны: {152}
| VAR
S1, S2, S3 : String;
BEGIN
S1 := 'Вам ';
S2 := 'привет';
S3 := S1 + S2; { S3 = 'Вам привет' } S3 := S3 + ' !'; { S3 = 'Вам привет !' }
END.
|
Рис. 8.3
'abcd' = 'abcd' --> TRUE,
'abcd' <> 'abcde' --> TRUE,
'abcd' <> ' abcd' --> TRUE.
Если при посимвольном сравнении окажется, что один символ больше другого (его код больше), то строка, его содержащая, тоже считается большей. Остатки строк и их длины не играют роли. Любой символ всегда больше «пустого места»:
'abcd' > 'abcD' ( так как 'd'>'D' ),
'abcd' > 'abc ' ( так как 'd'>' ' ),
'aBcd' < 'ab' ( так как 'B'<'b' ),
' ' > " ( так как #32>" ).
Можно, конечно, использовать нестрогие отношения: >= и <=.
Для работы со строками реализовано большое количество процедур и функций (табл. 8.2):
Таблица 8.2
| Процедуры и функции
| Назначение
|
| РЕДАКТИРОВАНИЕ СТРОК
|
| Length(S:String) : Byte
| Выдает текущую длину строки
|
| Concat(S1, S2,…,Sn) : String
| Возвращает конкатенацию или слияние строк S1 … Sn
|
| Copy(S:String ; Start, Len : Integer) : String
| Возвращает подстроку длиной Len, начинающуюся с позиции Start строки S
|
| Delete(Var S : String; Start, Len : Integer)
| Удаляет из S подстроку длиной Len, начинающуюся с позиции Start строки S {153}
|
| Insert(VAR S : String; SubS: String; Start: Integer)
| Вставляет в S подстроку SubS, начиная с позиции Start
|
| Pos(SubS, S : String) : Byte
| Ищет вхождение подстроки SubS в строке S и возвращает номер первого символа SubS в S или 0, если S не содержит SubS
|
| ПРОЦЕДУРЫ ПРЕОБРАЗОВАНИЯ
|
| Str(X[ :F[:n]]; VAR S : String)
| Преобразует числовое значение X в строковое S. Возможно задание формата для X
|
| Val( S : String; VAR X; VAR ErrCode : Integer)
| Преобразует строковое значение S (строку цифр) в значение числовой переменной X
|