Строки

Строки могут быть представлены следующими типами: shortstring, Longstring и widestring. Различаются эти типы предельно допустимой длиной строки, способом выделения памяти для переменных и методом кодировки символов.

Переменной типа shortstring память выделяется статически, т. е. до начала выполнения программы, и количество символов такой строки не может превышать 255. Переменным типа Longstring и widestring память выделяется динамически — во время работы программы, поэтому длина таких строк практически не ограничена.

Помимо перечисленных выше типов можно применять универсальный cтроковый тип String. Тип String эквивалентен типу Shortstring.

Переменная строкового типа должна быть объявлена в разделе объявления переменных. Инструкция объявления в общем виде выглядит так:

Имя: String;

или

Имя: String [длина]

где:

- имя — имя переменной;
- string — ключевое слово обозначения строкового типа;
- длина — константа целого типа, которая задает максимально допустимую длину строки.

Пример объявления переменных строкового типа:

name: string[30];

buff: string;

Если в объявлении строковой переменной длина строки не указана, то ее длина задается равной 255 символам, т. е. объявления

stroka: string [255]; stroka: string;

эквивалентны.

В тексте программы последовательность символов, являющаяся строкой (строковой константой), заключается в одинарные кавычки. Например, чтобы присвоить строковой переменной parol значение, нужно записать:

parol:= 'Большой секрет';

или

parol:= '2001';

Следует обратить внимание, что инструкция parol:=2001; неверная, т.к. тип константы не соответствует типу переменной. Во время компиляции этой инструкции будет выведено сообщение: incompatible types: 'Char' and 'Integer' (типы Char и Integer несовместимы).

Используя операции =, <, >, <=, >= и о, переменную типа string можно сравнить с другой переменной типа string или со строковой константой. Строки сравниваются посимвольно, начиная с первого символа. Если все символы сравниваемых строк одинаковые, то такие строки считаются равными. Если в одинаковых позициях строк находятся разные символы, большей считается та строка, у которой в этой позиции находится символ с большим кодом. В табл. 3.1 приведены примеры сравнения строк.

Таблица 3.1. Сравнение строк

| Строка 1 | Строка 2 | Результат сравнения |
| Иванов | Иванов | Строки равны |
| Васильев | Васильев | Строка 1 больше строки 2 |
| Алексеев | Петров | Строка 1 меньше строки 2 |
| Иванова | Иванов | Строка 1 больше строки 2 |

Кроме операции сравнения, к строковым переменным и константам можно применить операцию сложения, в результате выполнения которой получается новая строка. Например, в результате выполнения инструкций

f irst__name: ='Иван' ;

last_name:='Иванов';

ful_name:=first_name+last_name;

переменная fui_name получит значение 'Иван Иванов'.