Как известно, основной вид информации, которую хранит, получает и использует человек, — это текстовая информация. В эпоху активного использования вычислительной техники большая часть информации, обрабатываемой компьютерами, является текстовой. Для удобства ее обработки на компьютере придуманы специальные типы данных и операции над ними.
Работаем с цепочками символов: тип String
Для работы с цепочками символов (словами и предложениями) в Паскале введен специальный тип данных — String. Он чем-то похож на массив символов. Однако, в отличие от массива, со строками можно делать больше действий. Например, строки можно складывать.
Описание строковой переменной
Для работы с переменной типа string она должна быть описана в разделе var:
S: String;
В этом случае под строку S выделяется 255 символов, а в памяти, соответственно, она будет представлена 255 байтами. (На самом деле в памяти выделяется 256 байт, но это нам сейчас не важно.)
Если мы не планируем использовать такие большие строки, можно явно указать максимальный размер нужной вам строки. Например, запись Si: string[40]; говорит о том, что строка S1 может содержать от 0 до 40 символов.
Основные действия со строками
Рассмотрим операции, которые можно осуществлять с данными строкового типа (ввод-вывод, присваивание, сравнение).
Пример 10.1. Основные действия с символьными строками
ЗАМЕЧАНИЕ Максимальная длина строки — 255 символов (255 байт). Фактическая длина строки хранится в нулевом байте этой строки (именно поэтому под строку реально выделяется на 1 байт больше).
Задание 10.1. Написать программу, которая выводит в алфавитном порядке три введенных пользователем имени.
Некоторые функции и процедуры Паскаля для работы со строками
Для удобства обработки строковых переменных в среде Паскаль предусмотрен ряд процедур и функций. Так как они хранятся в специальном файле-библиотеке подпрограмм среды Паскаль, эти подпрограммы принято называть библиотечными.
Использование библиотечных подпрограмм работы со строками
В следующем примере мы будем вводить символьную строку, в которой несколько раз встречается слово-образец. Задача состоит в том, чтобы удалить все вхождения этого слова, вставить вместо каждого слово-заменитель и вывести полученную строку на экран.
Пример 10.2. Поиск и замена
Задание 10.2. Написать программу, в которой вводится строка из слов с некоторым количеством пробелов между ними. Удалить лишние пробелы, оставив по одному между словами.
Выводы
1. Для работы с массивом символов разумнее использовать тип данных String. 2. Со строками можно выполнять операции присваивания, сложения и сравнения. 3. Максимальное количество символов, которое можно хранить в строковой переменной, равно 255. 4. Для удобства работы с типом данных String рекомендуется использовать библиотечные функции и процедуры языка Turbo Pascal. 5. Библиотечные функции позволяют раздвигать строки, вычислять их длину, удалять в них подстроки и осуществлять поиск.
Контрольные вопросы
1. Если в строковой переменной не планируется хранить более 50 символов, как ее разумнее описать в программе? 2. Если к строковой переменной длиной 200 символов, описанной как string, «добавить» (+) строковую переменную длиной 100 символов, какова будет длина получившейся строковой переменной? 3. Как определить длину введенной с клавиатуры строки? 4. Как определить количество точек во введенной с клавиатуры строке? 5. Как увеличить строку вдвое, дописав рядом с каждым символом строки такой же (например, из строки «Вася» получить «ВВаассяя»)?