Строки. Объявление строчных типов и переменных

Вам уже неоднократно приходилось в различных ситуациях пользоваться строками для вывода информации с помощью операторов Write и WriteIn. Например:

Writeln('Текст заключённый в кавычки – это и есть строка. ');

Символ номер 32 "кавычка" используется при работе со строковыми величинами так же, как и с символьными переменными. Если Вам необходимо вывести символ номер 32 на экран, перед ним необходимо поставить дополнительную кавычку. Например:

Writeln('Строка с кавычкой " внутри. ');

При выполнении этого оператора на экране монитора вы получите:

Строка с кавычкой " внутри.

Для объявления строковых типов и переменных используется служебное слово STRING.

VAR si: string;

В данном случае объявлена строковая переменная si длиной 255 символов.

Вслед за словом string в квадратных скобках может указываться максимальная длина строки. Например:

VAR S: string[70];

или

TYPE

Line: string[70];

VAR S: Line;

В приведённых примерах переменная S в качестве своего значения может иметь любую последовательность символов (каждый из которых имеет тип char) произвольной длины (от 0 до 70 символов).

Определения значения строковой переменной

Значение строковой переменной может быть присвоено оператором присваивания, либо введено оператором ввода:

S := 'Пример строки. '; Readln(S) ;

В случае присваивания строковой переменной строкового выражения с длиной большей, чем максимально допустимая для данной переменной, происходит "обрубание" строки до максимальной длины. Эта ситуация не считается ошибочной, поэтому прерывания выполнения в данном случае не происходит, например:

PROGRAM EX_11_4;

VAR

ShortStr: string[5] ;

BEGIN

ShortStr := 'Очень длинная строка';

Writeln (ShortStr); {Очень}

END.

Длина строки. Операция конкатенации

В Pascal максимальная длина строки не может превышать 255 символов. Если размер строки не указан, он считается равным 255. Ниже объявлены две строки одинаковой длины.

VAR

att: string;

ts2: string[255] ;

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

att := 'Короткая строка1; длина строки составит 15 символов', то следующее присваивание

att := att + ' стала длиннее'; увеличит её длину до 29 символов.

Для строковых величин определена операция конкатенации '+':

PROGRAM EX_22_;

VAR si: string[80];

BEGIN

si := 'Пример ' + 'строки.1;

Writeln(sl); {Пример строки.} END.

Функции для работы со строками

Имя и параметры Типы параметров Тип результата Действие
Concat (S1, [S2, ..., Sn]) S1, S2… Sn – string string объединяет несколько строк в одну (при необходимости усекает чрезмерно большую строку до 255 символов). S1, S2, ..., Sn – объединяемые строки.
Length (S) S – string byte возвращает текущий размер строки. S – строка, у которой определяется размер
Pos (P,S): P,S – string byte поиск последовательности p в строке S (результат равен номеру первого символа строки S, с которого начинается искомая последовательность, или 0, если такой последовательности в строке нет).
Copy (S,I,С) S – string, I, C – byte string создаёт подстроку строки S. S – исходная строка; I – номер первого, выделяемого символа строки, С – число выделяемых символов
IntToStr(I) I – integer string преобразует целое число к строке
StrToInt(S) S – string integer преобразует строку в целое число . Если преобразование невозможно, то возникает ошибка времени выполнения
FloatToStr(R) R – real string преобразует вещественное число к строке
StrToFloat(S) S – string real преобразует строку в вещественное число. Если преобразование невозможно, то возникает ошибка времени выполнения
UpperCase(S) S – string string возвращает строку S, преобразованную к верхнему регистру
LowerCase(S) S – string string возвращает строку S, преобразованную к нижнему регистру
Trim(S) S – string string возвращает копию строки S с удаленными лидирующими и заключительными пробелами
TrimLeft(S) S – string string возвращает копию строки S с удаленными лидирующими пробелами
TrimRight(S) S – string string возвращает копию строки S с удаленными заключительными пробелами

Процедуры для работы со строками

Имя и параметры Типы параметров Действие
Delete (S, I, C); S – string, I, C – byte удаляет подстроку из строки S. I – номер первого удаляемого символа (если номер больше размера строки, символы не удаляются), С – число удаляемых символов (если символов в строке недостаточно, удаляется остаток символов)
Insert (P, S, I,) P,S – string, I – byte помещает подстроку Р в строку S (если получается строка слишком большого размера, то она усекается до 255 символов). S – исходная строка; Р – подстрока, помещаемая в строку; I – номер позиции исходной строки, начиная с которой помещается подстрока
SetLength(S,n) S – string, n – integer устанавливает длину строки S равной n
Str(X,S) Str(X:n,S) Str(X:n:m,S) S – string, X – integer, real , n, m – integer преобразует X к строковому представлению (во втором и третьем случаях согласно формату вывода, устанавливаемому n и m) и записывает результат в строку S

Наши рекомендации