В Паскале при работе с текстовой информацией существует возможность обработки одиночных символов типа Char и последовательности символов - строк типа String.
Символьный тип. Тип Char - это один из базовых типов языка, предназначен для хранения и обработки одного символа.
Множеством его значений есть отдельные символы (буквы, цифры, знаки), упорядоченные в соответствии с расширенным набором символов ASCII-кода. Переменная этого типа занимает 1 байт памяти. Благодаря тому что в памяти машины символы сохраняются в виде кодов (большим считается тот символ, чей код больше), их можно сравнивать. Для символов допустимы все операции сравнения: <, <=, =,>,> =, <>.
Описание данных символьного типа:
Const Name1 = 'v'; - описание символьной константы,
Var Name2: CHAR; - описание символьной переменной.
Как правило, значение для символьных переменных и констант задаются в кавычках, например, "f", '1 ',' + '. Также можно задать значение, указав непосредственно числовое значение ASCII-кода, поставив перед этим числовым кодом знак #, например, # 35, # 102.
В Паскале для работы с символьной информацией реализованы функции преобразования: CHR (N) - символ с кодом N, ORD (S) - код символа S. Также применяются функции, определяющие SUCC (S) - следующий символ, PRED (S) - предыдущий символ. Для этих функций выполняются следующие зависимости:
SUCC (S) = CHR (ORD (S) +1);
PRED (S) = CHR (ORD (S) -1).
Для латинских букв 'a' .. 'z' выполняется функция UPCASE (S), которая переводит эти литеры в верхний регистр 'A' .. 'Z'.
Строковый тип. Тип String - тип данных, предназначенный для хранения и обработки последовательности символов. Строку можно рассматривать как особую форму одномерного символьного массива.
Описание данных строчного типа:
Const Name1 = 'computer'; - описание строчной константы,
Var Name2: STRING; - описание строчной переменной,
Name3: STRING [20]; - описание строчной переменной заданной длины,
По умолчанию длина строчной переменной равна 255 символам, но можно ограничить длину строки с помощью явного указания длины строки.
В Паскале реализовано обработки строк двумя путями: проработка строки как единого целого и как объекта, который создается из отдельных символов.
Первый путь позволяет:
• присвоение строчной переменной за одну операцию целой строки символов, например, Name2: = 'computer'; Name3: = 'science';
• объединение строк в произвольном порядке с помощью операции «+» (операции связывания, объединения), например,
Name3: = 'computer' + 'science';
Name3: = Name2 + Name3;
• сравнение строк с помощью операций сравнения: <, <=, =,>,> =, <>, например,
If Name3 <> Name2 then write ('no');
Второй путь позволяет в каждый символа строки обращаться за его номером позиции как к элементу массива по индексу, например,
Name3: = Name2 [6] + Name2 [2] + Name2 [4];
Элемент с нулевым индексом содержит символ, код которого указывает на действительную длину данной строки.
В Паскале реализованы процедуры и функции для обработки строк. Текущую длину строки S можно узнать с помощью функции LENGTH (S).
Группа функций и процедур, направленная на проработку фрагментов строки:
• функция COPY (S, N, M) - копирование фрагмента строки S длиной M, начинается с позиции N;
• функция POS (S1, S) - поиск фрагмента S1 в строке S (получаем позицию, с которой начинается фрагмент S1 в строке S);
• функция CONCAT (S1, S2, ...) - объединение строк S1, S2, ...;
• процедура INSERT (S1, S2, M) - вставка фрагмента S1 в строку S2 с позиции M;
• процедура DELETE (S1, N, M) - изъятие части строки S1 длиной M, начиная с позиции N;
• процедура VAL (S, N, Code) - преобразование строки цифровых символов S в число N (параметр Code = 0, если строка S образован не из цифровых символов)
• процедура STR (N, S) - преобразование числа N в строку цифровых символов S.
Для сортировки символьных строк (например, по алфавиту) целесообразно создать массив символьных строк (массив типа String), что с учетом возможности использования операций сравнения для строк, позволит простым способом применять основные алгоритмы сортировки.