А какие же существуют операции для работы со строками, спросите Вы. Для строк и символов определена одна единственная операция – сцепление. Она обозначается символом +.
Например, программа
1 2 3 4 5 6 7 8 |
var s : string; BEGIN s:=’Турбо-’+’Паскаль’; writeln(s); END. |
напечатает строку
Турбо-Паскаль
Другие действия со строками можно выполнять, используя встроенные функции, которые будут подробно рассмотрены далее.
Кроме описанных выше операций существуют также операции отношения (сравнения):
= — равно;
<> — не равно;
< — меньше;
> — больше;
<= — меньше или равно;
>= — больше или равно.
Очевидно, что сравнивать можно лишь переменные одного типа. Результат применения операции отношения к переменным любого типа будет иметь логический тип (boolean).
Как сравниваются числа, Вам понятно, а вот как сравнить две строки? Какая же из них «больше»?
Сравнение двух строк происходит следующим образом. Символы строк сравниваются попарно друг с другом так, что первый символ первой строки сравнивается с первым символом второй строки, второй символ первой строки – со вторым символом второй строки и т.д. При сравнении символов на самом деле сравниваются их коды (см. приложение 2). Но, вообще-то, порядок следования кодов символов совпадает с алфавитным (если используются символы лишь одного алфавита). Если одна строка короче другой, то во время их сравнения недостающий символы заменяются нулями.
Например, справедливы следующие отношения:
‘ааа’<’ваа’
‘ааа’<’ааб’
‘аа’<’ааа’
При сравнении данных типа BOOLEAN учитывается внутреннее соглашение Турбо-Паскаля, в соответствии с которым false есть нулевой байт, а true – единичный. Заметим, что функция ord преобразует к целому не только символы, но и логические величины, поэтому
ord(false)=0,
ord(true)=1.