В языке Turbo Pascal 7.0 существует стандартный тип данных, который называется символьным, - char. Этот тип является порядковым, и значения символьных переменных могут сравниваться между собой.
К символьным переменным относятся все заглавные латинские буквы 'А', 'В', 'С', ..., 'Z', строчные 'а', ‘b', 'с', ..., 'z', цифры '0', '1, '2', ..., '9', знаки препинания, всевозможные скобки, русские буквы и т. д. В программах их значения всегда заключаются в апострофы. Внутри каждого такого ряда коды символов упорядочены: 'А' < 'В' < 'С' <... <'Z' и т. д. ASCII-коды всех строчных букв меньше всех заглавных.
Для работы с таким типом данных, как и для других порядковых типов, часто используются функции, аргументы которых могут быть символьными переменными:
pred () - предыдущее значение, например pred('B') = 'A'; succ() - последующее значение, например succ('a') = 'b'; ord() - численное значение кода, например ord('7')-ord ('0') = 7.
Символьные переменные могут использоваться как переменные цикла, например for i:= 'Z' downto 'A’ do или for i:='А' to 'Z' do.
Последовательность символов, заключенная в апострофы, называется строкой и описывается типом с названием string. Строки, состоящие всего из одного символа, называются символьными константами. Переменная типа string должна быть описана в разделе объявления переменных:
Имя: string;или
Имя: string[длина];
где Имя — имя переменной строкового типа; string — ключевое слово, обозначающее строковый тип; длина — константа целого типа, определяющая, что значением объявляемой переменной может быть любая строка, длина которой (количество символов) не превышает указанное в объявлении значение. Примеры объявления переменных типа string:
name: string[30]; buff: string;
Если при объявлении переменной длина не указывается, то предполагается, что длина строки равняется 255 символам.
Для строк выполняются операции сравнения >, < ,>= ,<=, например, 'viv'<'viva', и объединения (конкатенации) +:
'мотоцикл':= 'мото'+'цикл'.
Сравнение строк осуществляется слева направо в соответствии с ASCCII кодами соответствующих символов.
По сути, строка длины k представляет собой массив из k+1 символьных переменных, где нулевой элемент хранит значение длины строки: string[k] = arrray[0..k] of char;
Для работы со строками в Turbo Pascal 7.0 используются следующие специальные функции и процедуры:
CONCAT(STR1, STR2) - объединение строк STR1 и STR2;
COPY(STR, I, J) - возвращает копию подстроки из J символов, которые располагаются в строке STR начиная с позиции I;
LENGTH(STR) - возвращает длину строки STR;
POS(CONTEXT, STR) - возвращает номер позиции, начиная с которой располагается подстрока CONTEXT в строке STR;
DELETE (STR, I, J) - удаляет из строки STR J символов начиная с позиции I;
INSERT(CONTEXT, STR, I ) - вставляет подстроку CONTEXT в строку STR начиная с позиции I;
STR(N, STR) - преобразует число N в строковую переменную STR;
VAL(STR, X, CODE) - преобразует строку STR в двоичное число X, где CODE - код неправильного символа.
П р и м е р 2. Написать программу, которая удаляет пробелы в начале введенной с клавиатуры строки.