Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ахмадулин Р.К. технологии программирования.doc
Скачиваний:
9
Добавлен:
10.11.2019
Размер:
615.94 Кб
Скачать

§12. Строковый тип

Для хранения текста можно использовать массив символов. Однако для этих целей в языке Паскаль имеется специальный строковый тип – 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’;

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

Для работы со строками в языке программирования Паскаль включены процедуры и функции, которые обеспечивают редактирование и преобразование строк.

Length(s)

Возвращает длину строки s

Delete(s, Index, Count)

Удаляет в строке s Count символов, начиная с позиции Index

Insert(Substr, Dest, Index)

Вставляет в строку Dest подстроку Substr с позиции Index

Pos(Substr, s)

Возвращает позицию подстроки Substr в строке s либо 0, если Substr не входит в s

Copy(s, Index, Count)

Возвращает подстроку строки s, Count символов, начиная с позиции Index

Пример: работа со строками

readln(s);

s:=s+‘,_’+s+’!!!’;

writeln(s);

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

readln(s);

for i:=1 to length(s) do writeln(s[i]);