В языке Pascal строковые переменные можно обрабатывать двумя способами.
Первый способ дает возможность рассматривать строку как целостный объект, второй – обрабатывать его как объект, который состоит из отдельных символов.
Первый способ предоставляет возможность за одну операцию присваивать строковой переменной значение строки символов, выполнять объединение нескольких строк и т.п..
Второй способ обеспечивает доступ к отдельным символам строки по их индексам.
Для доступа к символу строки применяют операцию индексирования:
имя[индекс]
По номеру символа можно получить доступ к его значению.
name [2] ® 'b'
В тексте программы последовательность символов, которые являются строкой, помещаются в одинарные кавычки.
Выражение строкового типа можно присвоить переменной строкового типа.
Если длина строкового выражения больше общей длины переменной, присваиваются лишь первые символы в пределах обозначенного количества.
Например:
var name, stroka, stroka1, stroka2 : string[4];
name := 'Ivan';
stroka:='2005';
stroka1:=2005; // несоответствие типов Incompatible Types: 'String' and 'Integer'
stroka2:='Desember'; // stroka2Ü'Dese'
Строки равны, еслиимеют одинаковую текущую длину и символы строк с одинаковым индексами равны.
'abcd'='abcd' Þ true
'abcd'<>'abcde' Þ true
'abcd'<>'Èabcd' Þ true (Èсхематическое обозначение пробела)
Если в одинаковых позициях строк находятся разные символы, большей считают ту строку, у которой в этой позиции находится символ с большим кодом.
Остатки строк и их длины не играют роли.
Любой символ всегда больше пустого места.
'abcd' > 'abc'
'abcd'>'Èabc'
'aBcd'<'ab'
'È' >''
Это объясняется тем, что в конце каждой символьной строки, которая вводится с клавиатуры, стоит так называемый разделитель строк (маркер конца) Eoln (end of line) – последовательность символов #13 и #10. Разделитель строк вставляется в текст, который вводится, при нажатии на клавиши Enter. В результате каждая символьная строка отображается в отдельной строке дисплея.
Процедура Read может считывать данные только до символа Eoln. Данные, расположенные в следующей символьной строке, т.е. за разделителем строк Eoln, для нее недоступны.
Процедура Readln считывает все символы, расположенные до разделителя строк, а потом и сам разделитель. Поскольку символы #13 (переведение каретки) и #10 (переход в начало строки) являются управляющими, то в результате их считывания курсор дисплея переходит в начало следующей строки.
Расположенная в следующей строке дисплея символьная строка может быть считана следующей процедурой Readln.
Из сказанного следует, в частности, если переменная Х имеет тип ShortString, то процедура