Раздел 8.5 - Основные сведения о типе Unbounded_String
Тип Unbounded_String определен в пакете Ada.Strings.Unbounded.
Поэтому, чтобы использовать данный тип, необходимо подключить пакет Ada.Strings.
Unbounded при помощи спецификатора ``with''. Этот пакет также предоставляет
несколько полезных простых операций над типом Unbounded_String. В
разделе Ada RM A.4.5
дано полное описание пакета Ada.Strings.Unbounded.
Некоторые важные операции:
-
Функция To_Unbounded_String принимает параметр типа String и
преобразовывает его в тип Unbounded_String. Это полезно во многих
случаях, например, для присваивания константе значения типа
Unbounded_String, что будет проиллюстрировано ниже.
-
Функция To_String, наоборот, принимает значения типа Unbounded_String
и преобразовывает его в тип String.
-
Функция Length принимает Unbounded_String и возвращает текущее
значение количества символов в нем.
-
Процедура Append принимает два параметра и присоединяет значение второго
агрумента к концу первого. Первый аргумент должен быть типа
Unbounded_String, а второй - типа String или Unbounded_String.
-
Функция Element извлекает из заданного значения Unbounded_String (параметр
Source) символ в указанной позиции (параметр index). Самый первый
символ имеет индекс 1, как в Паскале; в C и C++ индексы начинаются с нуля. Ниже
приведено строгое описание функции Element:
function Element (Source : in Unbounded_String; Index : in Positive)
return Character;
-
Процедура Replace_Element является обратной по отношению к функции Element;
она позволяет изменить символ в заданной позиции.
Ниже - строгое определение Replace_Element:
procedure Replace_Element (Source : in out Unbounded_String;
Index : in Positive;
By : in Character);
-
Функция Slice принимает параметр типа Unbounded_String и возвращает
подстроку в нем, то есть все символы между заданными нижним и
верхним индексами. Slice возвращает String, поэтому если
возвращаемое значение будет использоваться как Unbounded_String -
используйте функцию To_Unbounded_String.
function Slice (Source : in Unbounded_String;
Low : in Positive;
High : in Natural) return String;
-
Процедура Insert принимает параметр New Item (типа String ) и вставляет
его значение в Unbounded_String перед заданным индексом. Если строка
непуста, это изменит длину Unbounded_String. Описание процедуры:
procedure Insert (Source : in out Unbounded_String;
Before : in Positive;
New_Item : in String);
-
Процедура Delete принимает Unbounded_String и два индекса, и удаляет
символы, между заданными индексными позициями (включая начальную и
конечную). Ее описание:
Procedure Delete
procedure Delete (Source : in out Unbounded_String;
From : in Positive;
Through : in Natural);
Операторы сравнения (такие, как "=" и "<" ) также определены в данном
пакете. Кроме того, имеются другие подпрограммы для изменения или поиска
Unbounded_String, включая "&" (которая объединяет две строки типа
Unbounded_String), Translate, Trim, Head, Tail, Index и Find_Token.
Для присваивания значения одной переменной другой можно использовать
оператор присваивания (:=). В отличие от типа String длины переменных
Unbounded_String не обязательно должны быть одинаковыми.
Упражнение:
Какое выражение возвратит значение четвертого символа заданной
переменной ``Input'' типа Unbounded_String?
- Element(Input, 4)
- Replace_Element(Input, 4, 'L')
- Element(4, Input)
Вы можете также:
David A. Wheeler (dwheeler@ida.org)
Перевод: Юрий Королев
Общая редакция перевода: Г.Ю. Сисюк
Исходная копия этого документа находится по адресу
"http://www.adahome.com/Tutorials/Lovelace/s8s5.htm".
Исходная копия перевода размещена на сайте http://www.ada-ru.org