Стандартные подпрограммы обработки строк

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;