Операции над строками
Описание строковых переменных
Строковый тип
Вопросы для самопроверки
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’;