2. При сложении (конкатенации) строк происходит как бы склеивание их. При этом символы строки, стоящей справа приклеиваются к символу строки, стоящей слева. Если размер строки, получившейся в результате сложения больше допустимого размера, то лишние символы усекаются.
Пример.
Var S1:String ;
S2: String[5 ];
S3: String[3];
Begin
S2:=’abc’;
S3:=’xyz’;
S1:= S2+ S3;
{S1=abcxyz}
S1:=S3+S2; {S1=xyzabc}
{S1+S2?S2+ S1) (S1?S2}
Пример.
S2:=S2+S3; (‘abcxy’)
S2:=’ Мир’+’Труд’; (МирТр)
Замечание 1: Пустая строка может быть равна только другой пустой строке, и она считается меньше другой непустой строки.
Замечание 2: Типы String и Char совместимы и могут использоваться вместе в выражениях, но переменная типа Char всегда должна иметь некоторое значение, а переменная типа String может не содержать значения, т.е. быть пустой строкой.
Пример.
Var a:char;
b:String [ 1]
begin
a:=’x’;
b:=’2’;
b:=’’; - возможно
a:=’’; - невозможно
Строка так же воспринимается как совокупность отдельных символов. При этом имеется возможность обращения к конкретному символу cтроки, путем указания его номера.
Пример.
имя[номер]
S1:=’авс’;
S1[2]:=’z’; ( S1=’azc’ );
В качестве номера может выступать число в диапазоне от 1 до 255, либо выражение, результат которого является целым числом от 1 до255.
Для отдельных элементов строки разрешены операции сравнения, кроме того можно присваивать им значения.
Пример.
1. Поменять местами первый и последний символы
Var S1:String ;
a:Char;
begin
Write(‘строка’);
Readln(S1);
a:=S1[1];
S1[1]:=s1[Length(S1)];
S1[Length (S1)]:=a;
еnd.
2. Подсчитать количество элементов в строке, равных заданному.
Замечание: чтобы присвоить строке символ апостроф, нужно S:=’’’;
ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ СО СТРОКАМИ.
Length - возвращает динамическую длину строки.
Copy – возвращает подстроку строки.
UpCase - преобразует символ из нижнего в верхний регистр.
Delete – удаляет подстроку из строки.
Insert – вставляет подстроку в строку.
Pos – ищет подстроку в строке.
Синонимы: матрица, вектор, регулярный тип, регулярная совокупность и т.д.
Рассмотрение структурированных типов начнем с массивов. Ранее мы рассмотрели “полуструктурированный” тип String, который можно считать простейшим частным случаем массива.
На практике часто встречаются задачи, в которых приходиться иметь дело с совокупностью переменных, имеющих одинаковый тип данных (Пример: средняя успеваемость группы, средний рост группы, средняя t за год).
Для реализации таких случаев в Pascal имеется специальная структура – массив.
Массив - это упорядоченная совокупность элементов, имеющих один тип данных.