Стандартные подпрограммы обработки строк
Var
Const
Строковые типы
Значением строкового типа является последовательность символов, что фактически является одномерным массивом, состоящим из элементов символьного типа (char).
Синтаксис описания строкового типа:
String [N]
N– это выражение-константа,результат вычисления которойопределяет максимально возможное количество символов в строке. Реальное количество символов в строке может изменяться в процессе работы программы, например, после выполнения оператора присваивания. Текущее количество символов в строке можно выяснить с помощью функции Length.
Пример описания переменных строкового типа:
n = 6;
s: string[10];
s1, s2: string [n];
S3: string[n+2];
К символам в строке можно получить доступ как к компонентам массива – с помощью индекса, который фактически определяет позицию символа в строке.
Первый символ в строке имеет индекс 1, второй – 2 и т. д. Последний символ имеет индекс N.
Например, имеется пустая строка s1 (рисунок 16 а). Фактическая длина строки s1 равна 0.
После выполнения оператора: s1:=’end .’ элементы строки s будут заполнены так как показано на рисунке 16 б. Теперь фактическая длина строки s1 равна 5.
После выполнения оператора: s1[4]:=’-’; в строке s1 вместо находившегося ранее на позиции с номером 4 символа пробел (#13) появится символ ’-’ (рисунок 16 в), фактическая длина строки не изменится.
Индекс | ||||||
Содержимое | ||||||
строка s1 | ||||||
а. | ||||||
Индекс | ||||||
Содержимое | ’e’ | ’n’ | ’d’ | ’ ’ | ’.’ | |
строка s1 | ||||||
б. | ||||||
Индекс | ||||||
Содержимое | ’e’ | ’n’ | ’d’ | ’-’ | ’.’ | |
строка s1 | ||||||
в. |
Рисунок 16 – Доступ к символам строки
Функция Concat(s1, [s2, ..., sn] ; string– возвращает строку, которая объединяет в себе последовательно строки s1, s2, ... , sn.
Функция Соpy(s : string; нач_инд : integer;
колич:integer) – возвращает часть строки s, начиная с символа с индексом нач_инддлиной в количсимволов.
Процедура Delete(var s : string; нач_инд: integer; колич: integer) – удаляет из строки s, часть символов, начиная с символа с индексом нач_инддлиной в количсимволов.
Процедура Insert( вст_стр: string; var нов_стр: string; нач_инд : integer) –добавляет строку вст_стр в строку нов_стр,начиная с символа с индексом нач_инд.
Функция Length(s : string): integer– возвращает фактическую длину строки s.
Функция Pos(поиск_стр, s: string):byte– возвращает позицию вхождения строки поиск_стр в строку s. Если строка поиск_стр в строке s не найдена, то возвращается значение 0.
Процедура Str(х, var s :string)– преобразует численное значение x в его строковое представление и помещает полученное строковое значение в переменную s.
Процедура Val(s : string; var v; var код :integer) – преобразует строковое значение s в его численное представление и помещает полученное значение в переменную v (переменная должна быть целого или вещественного типа). В переменной код возвращается индекс первого символа в строке s,который невозможно преобразовать в число. Если переменная кодпосле выполнения процедуры равна 0, то все символы строки s были успешно преобразованы.
Пример использования подпрограмм обработки строк:
Имеется строка вида 'SonyEricsson 700i - 180.33$ (+чехол)'. Необходимо представить цену товара в рублях.
program StrEdit;
var S,ZstrD,ZstrR: String;
nach, kon:integer;
kod:integer;
Znum:real;