Перечислим основные процедуры и функции, которые предназначены для работы с переменными строкового типа.
Определение длины строки
Удаление части символов строки
Вставка символов в строку
Поиск подстроки в строке
Склеивание строк
Копирование строк
Перевод числа в строку
Перевод строкового выражения в число
1. Определение длины строки. Вычисление текущей длины строки производится
с помощью функции Length. Ее общий вид следующий:
Length (<выражение строкового типа>):Integer;
Результатом данной функции является целое число, равное текущему количеству символов
в строке. Например, при выполнении следующих конструкций:
St:='Язык Паскаль';
K:=Length(St);
значение целой переменной K будет равно 12.
Со строковыми переменными можно производить операции сравнения (<, <=, >, >=, <>) по правилу сравнения десятичных дробей. Сравнение строк осуществляется посимвольно слева направо: сравниваются коды соответствующих символов до тех пор, пока не нарушится равенство или не кончится одна из строк (или обе сразу), при этом делается вывод о знаке неравенства. Например,
2. Удаление части символов строки. Для удаления из строки фрагмента используется процедура Delete, общий вид которой следующий:
Рис.1. Общий вид процедуры Delete
Например, при выполнении процедуры Delete('Язык Паскаль',5 ,8) из строки будут удалены 8 символов, начиная с пятого, и исходная строка будет иметь вид: 'Язык'.
3. Вставка символов в строку. Для вставки символов в строку используется процедура Insert. Ее общий вид следующий:
Рис.2. Общий вид процедуры Insert
Например, в результате выполнения процедуры Insert('111', 'ABC',2); результирующая строка будет такой:'A111BC'.
4. Поиск подстроки в строке. Для определения позиции подстроки в строке используется функция Pos, общий вид которой следующий:
Рис.3. Общий вид функции Pos
Результат этой функции целое число. Оно определяет номер элемента, с которого начинается первое вхождение подстроки в строку. Если подстрока в строку не входит, то значение функции равно нулю. Например, при выполнении конструкции k1:=Pos('BC','ABCD'); значение переменной k1 равно 2, так как функция Pos возвращает номер элемента, с которого подстрока первый раз встречается в строке. При выполнении оператора k1:=Pos('ABCD',' BC'); значение переменной k будет равно нулю.
Приведем пример программы, иллюстрирующей выше описанные конструкции. Пусть в заданном тексте нужно заменить все вхождения подстроки 'del' на 'insert'.
Решение и комментарии вы можете посмотреть здесь.
5. Склеивание строк. Для "склеивания" строк используется
функция Concat, общий вид которой следующий:
Concat(<строка1>,<строка2>,...,<строкаN>):String;
Например, после выполнения следующих конструкций:
A:='Пар';
B:='ход';
C:= Concat(A,'о',B);
WriteLn(C);
на экран будет выведено сообщение: "Пароход ".
6. Копирование строк. Для копирования строк или их фрагментов используется функция Copy. Ее общий вид:
Рис.4. Общий вид функции Copy
Например, при выполнении оператора WriteLn(Copy ('Язык Паскаль',6,7)) на экран будет выведено сообщение:" Паскаль".
Часто возникает необходимость получить строковое представление числа и наоборот (например, получить строку '13' из числа 13). Для работы с числами и строками применяются следующие две процедуры.
7. Перевод числа в строку. Для перевода числа в строку используется процедура Str, общий вид которой следующий:
Рис.5. Общий вид процедуры Str
Например, Str(1.21, St); в результате выполнения процедуры строка будет такой: St='1.21'.
8. Перевод строкового выражения в число. Для перевода строки в число используется процедура Val. Ее общий вид:
Рис.6. Общий вид процедуры Val
Если данная строка действительно является записью числа (целого или действительного), то значение признака будет равно нулю, иначе значение признака будет равно номеру первого символа, с которым процедура Val "не справилась", то есть преобразование этого символа является невозможным.
Например, при выполнении процедуры Val ('1234',N,K); значение переменной N будет равно 1234, а переменная K будет равна нулю, так как строка '1234' является записью целого числа. При выполнении конструкции Val('12-34',N,K); значение переменной N не изменится, а переменная K будет равна трем, то есть номеру символа, с которого преобразование невозможно, так как знак "-" в записи чисел может быть только на первом месте.
Проиллюстрируем использование некоторых процедур и функций на примере следующей программы: подсчитать сумму цифр, входящих в данную строку.
Решение и комментарии вы можете посмотреть здесь.
Определение длины строки
Удаление части символов строки
Вставка символов в строку
Поиск подстроки в строке
Склеивание строк
Копирование строк
Перевод числа в строку
Перевод строкового выражения в число
На следующем шаге мы разберем еще несколько задач, при решении которых используются
перечисленные конструкции.