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

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;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: