Представление строк в памяти зависит от того, насколько из-
менчивыми являются строки в каждой конкретной задаче, и средства
такого представления варьируются от абсолютно статического до
динамического. Универсальные языки программирования в основном
обеспечивают работу со строками переменной длины, но максимальная
длина строки должна быть указана при ее создании. Если програм-
миста не устраивают возможности или эффективность тех средств ра-
боты со строками, которые предоставляет ему язык программирова-
ния, то он может либо определить свой тип данных "строка" и ис-
пользовать для его представления средства динамической работы с
памятью, либо сменить язык программирования на специально ориен-
тированный на обработку текста (CNOBOL, REXX), в которых предс-
тавление строк базируется на динамическом управлении памятью.
ВЕКТОРНОЕ ПРЕДСТАВЛЕНИЕ СТРОК. Представление строк в виде
векторов, принятое в большинстве универсальных языков программи-
рования, позволяет работать со строками, размещенными в статичес-
кой памяти. Кроме того, векторное представление позволяет легко
обращаться к отдельным символам строки как к элементам вектора -
по индексу.
Самым простым способом является представление строки в виде
вектора постоянной длинны. При этом в памяти отводится фиксирован-
ное количество байт, в которые записываются символы строки. Если
строка меньше отводимого под нее вектора, то лишние места запол-
няются пробелами, а если строка выходит за пределы вектора, то
лишние (обычно справа строки) символы должны быть отброшены.
На рис.4.3 приведена схема, на которой показано представле-
ние двух строк: 'ABCD' и 'PQRSTUVW' в виде вектора постоянной
длины на шесть символов.
┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐
│ A │ B │ D │ │ │ │ │ P │ Q │ R │ S │ T │ U │
└───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┘
Рис. 4.3. Представление строк векторами постоянной длины