Var имя перем: string[n]; |
Type имя типа=string[n]; Var имя перем: имя типа; |
где n- максимальное количество символов в строке (по умолчанию n =255). Может быть любой константой порядкового типа.
Ввод строк осуществляется процедурой Readln. За одну процедуру можно ввести только одну строку. К символу строки можно обратиться как к элементу одномерного массива. Любой символ занимает в оперативной памяти 1 байт. Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки.
Например:
Var st: string[11]; x:byte;
Begin
Readln(st); {ввод строки st=’молоко’}
if st[ 5 ]=’A’ then...
x:= ord(st[0]); {x – текущая длина строки}
...
End.
м | о | л | о | к | о |
i = 0 1 2 3 4 5 6 7 8 9 10 11 (номер байта)
Операции над строками
1) Объединение строк (конкатененация) à +
Например:
Var s,s1,s2: string;
S1:=’ком’;
S2:=’пот’;
S:=S1 + S2; {s=‘компот’}
2) Сравнение строк (>, <, <=, >=, = < >)
Выполняется посимвольное сравнение строк по кодам таблицы ASCII. Символ с большим кодом дает большее значение всей величине (строке). Перед сравнением автоматически выравниваются длины сравниваемых строк. К более короткой строке справа добавляется недостающее количество пробелов.
|
|
Например:
‘Сол о ма ‘ < ‘Сол ь ’
т.к. буква о в машинном алфавите стоит до буквы ь, а значит ее код меньше.