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


Описание строковых переменных

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

Вопросы для самопроверки

1. В чем суть алгоритма бинарной сортировки данных?

2. В чем суть алгоритма пузырьковой сортировки данных?

3. В чем суть алгоритма сортировки данных вставкой?

4. Какие улучшенные алгоритмы сортировки данных Вы знаете?


Для хранения текста можно использовать массив символов. Однако для этих целей в языке Паскаль имеется специальный строковый тип – String.

Значением строкового типа является последовательность символов.

Строковый тип описывается с помощью ключевого слова String, после которого в квадратных скобках указывается длина строки. Длина строки может быть от 1 до 255 символов.

Пример: описание строковых переменных фиксированной длины

type

MyString: String[30];

var

s1: MyString;

s2: String[25];

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

Пример: описание строковых переменных переменной длины

var s: String;

Тип String без указания длины совместим со всеми типами строк.

Особенностью строковых переменных является то, что к ним можно обращаться как к скалярным переменным, так и как к массивам. Во втором случае применяется конструкция "переменная с индексом", что обеспечивает доступ к отдельным символам строки. При этом нижняя граница индекса равна 1. Отдельный символ строки совместим с типом Char.

Пример: обращение к отдельным символам массива

var s: String;

s:=’Вася’;

s[3]:=’н’; { Итог: s=’Ваня’ }

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

Для строк определены операции присваивания, слияния (конкатенации) и сравнения.

Для сравнения строк применяются все операции отношения. Сравнение строк происходит посимвольно, начиная с первого символа. Строки равны, если имеют одинаковую длину и посимвольно эквивалентны.

Строки могут быть элементами списка ввода–вывода, при этом записывается имя строки без индекса.

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

В программе переменную строкового типа можно:

ü заполнять, например readln(s);

ü выводить значение на экран – writeln(s);

ü присваивать в строковую переменную какой-либо текст – s:=’Вася’;

ü присваивать значение строки другой строковой переменной – s2:=s;

ü «склеивать» с другими строками (конкатенация) – s:=s2+’!!!’;

ü сравнивать строки – s=s2.

Инициализация строк может производиться и с помощью типизированных констант.

Пример: инициализация строк с помощью типизированных констант

const sName: String[9] = ‘IBM PC/AT’;