8.2. Строки
Последовательность символов произвольной длины называется строкой. Для обработки и хранения символов можно использовать массив символов или переменные типа String.
Строки могут быть представлены следующими типами: ShortString, LongString, WideString.
Переменной типа ShortString память выделяется до начала выполнения программы, и количество символов такой строки не может превышать 255.
Переменным типа LongString, WideString память выделяется во время работы программы, поэтому длина таких строк практически не ограничена.
Для обеспечения совместимости с предыдущими версиями Delphi и Borland Pascal поддерживается тип String, эквивалентный типу ShortString.
Объявление строковых переменных:
<Имя переменной>: String;
или
<Имя переменной>: String[n];
где n – размер строки (от1 до 255).
Строковая переменная может получить значение в программе в результате выполнения операции присвоения.
Например:
var
Parol :string; // длина строки до 255 символов
S :string[10]; // длина строки до 10 символов
const
a=' Many ';
. . . . . . . .
S:= ' Mart ' ; // переменной S присваивается значение Март
Parol := ' Secret ' ;
. . . . . . . .
Результат выполнения строкового выражения является строка символов.
Для строк применимы операции:
-
конкатенация (добавление к первой строке второй) // Сцепление строк
-
сравнение. // Какой код строки длиннее
Задача3. Объединение (конкатенация) двух строк.
program Example3;
…
Код 32 – клавиши пробел
Код 13 – клавиши Enter
Код 46 – клавиши точка
uses
SysUtils;
var
S, Str, Str1, Str2:string[20];
begin
Str1:='Delphi ';
Str2:='2005';
Str:=Str1 + #32 + Str2 + chr(46); // Delphi 2005.
S:= Concat(Str1, #32, Str2, #46); // Функция объединения
Writeln(Str); // или Writeln(S);
Readln
end.
Задача4. Сравнить содержимое двух строк
program Example4;
…
uses
SysUtils;
var
Str1, Str2:string[50];
begin
Writeln ('Vvedite 1 stroky');
Readln (Str1);
Writeln ('Vvedite 2 stroky');
Readln (Str2);
If Str1 > Str2 Then Writeln ('1 stroka dlinnee')
Else
If Str1 < Str2 Then Writeln('1 stroka koroche')
Else Writeln(' 1 i 2 stroki ravnye');
Writeln ('Str1=', Str1, ' Str2=', Str2);
Readln
end.
Переменную типа String можно сравнивать с другой переменной типа String или со строковой константой.
Строки сравниваются посимвольно, начиная с 1 символа:
-
Если все символы сравниваемых строк одинаковые, то такие строки считаются равными;
-
Если в одинаковых позициях строк находятся разные символы, большей считается та, у которой в этой позиции находится символ с большим кодом.
-
Получить доступ к отдельному символу строки можно, указав его номер в квадратных скобках после имени переменной (строки).
Например, s[ i ], где i – номер символа строки s.
Например,
-
Строка 1
Строка 2
Результат сравнения
Иванов
Иванов
Строки равные
васильев
Васильев
Строка1 > Строки2
Алексеев
Петрова
Строка1 < Строки2
Код В=194, а в=231
А=192, л=235, е=229, к=234, с=241,
П=207, т=242, р=240, о=238, в=226