Строковые типы

Данные строкового типа – это последовательность символов переменной длины. Такой тип еще называют типом string. Он во многом похож на одномерный массив символов, однако, в отличие от последнего, количество символов в строке–переменной может меняться от 0 до N, где N – максимальное количество символов в строке.

Описание строкового типа состоит из ключевого слова string, после которого в квадратных скобках указано максимальное  количество символов строки данного типа. Это количество может выражаться с помощью целой константы или имени целой константы. Если максимальный размер строки не указан, то он автоматически принимается равным 255 – максимально возможная длина строки. (Существуют еще ASCIIZ–строки, длина которых может достигать 65536 символов, но для работы с такими строками нужна особая директива компилятору). Длина переменной такого типа может динамически изменяться между 1 и значением константы. Символы в строке следует воспринимать как пронумерованные в интервале от 1 до значения константы.

Пример:
type
cities = string [20];
names = string [12].

Переменные типа cities – строкового типа, то есть строки символов, состоящие максимально из 20 символов. Переменные типа names максимально могут состоять из 12 символов. Переменные можно объявить следующим образом:
var
ci: array [1..20] of char;
na: array [1..12] of char.

В этом случае говорят, что ci и na символьные вектора. Символьные вектора можно рассматривать как строковые переменные, представляющие последовательности постоянной длины. Благодаря такой интерпретации имена символьных векторов и имена их элементов могут использоваться в строковых выражениях там, где могут использоваться имена строковых переменных.

В этом примере при вводе можно записать сколько угодно символов, но с помощью readln(s) можно считать максимум 10 символов, так как по описанию переменная s может содержать максимум 10 символов. Прочие символы игнорируются. Считываемых символов может быть и меньше 10.

Операции над строками

Строки можно присваивать, сливать и сравнивать.

Присваивание последовательности символов строковым переменным осуществляется с помощью оператора присваивания. С правой стороны оператора присваивания может находиться произвольное строковое выражение, а с левой имя строковой переменной.

В Турбо Паскале существуют два пути обработки переменных типа string. Первый путь предполагает обработку всей строки как единого целого, то есть единого объекта. Второй путь рассматривает строку как составной объект, состоящий из отдельных символов, то есть элементов типа char, которые при обработке доступны каждый в отдельности. Так, первый путь  предоставляет возможность присвоения строковой переменной за одну операцию значения целой строки символов:
str_1 := ‘Это строка!’.

Присваиваемое значение строки, так же как и отдельный символ типа char, заключается в апострофы. Если апострофы опущены, то компилятор рассматривает приведенный фрагмент текста как числовую величину или как идентификатор.
Второй подход обеспечивает доступ к отдельным символам строки по номеру их позиции:

str_1 [1] := ‘Э’; str_1 [2] := ‘т’; str_1 [3] := ‘o’; str_1 [4] :=’ ‘;
str_1 [5] := ‘c’; str_1 [6] := ‘т’; str_1 [7] := ‘p’; str_1 [7] := ‘o’;
str_1 [8] := ‘к’; str_1 [9] := ‘a’; str_1 [10] := ‘!’

Один отзыв на «Строковые типы»

  1. Virok:

    а как работать с длиной строки более 70000 символов?

Ваш отзыв

Повторите код: