3.6.3 String Types
Static Semantics
A one-dimensional array type
whose component type is a character type is called a
string type.
There are three predefined
string types, String, Wide_String, and Wide_Wide_String, each indexed
by values of the predefined subtype Positive; these are declared in the
visible part of package Standard:
subtype Positive is Integer range 1 .. Integer'Last;
type String is array(Positive range <>) of Character;
type Wide_String is array(Positive range <>) of Wide_Character;
type Wide_Wide_String is array(Positive range <>) of Wide_Wide_Character;
51 String literals (see
2.6
and
4.2) are defined for all string types.
The concatenation operator & is predefined for string types, as for
all nonlimited one-dimensional array types. The ordering operators <,
<=, >, and >= are predefined for string types, as for all one-dimensional
discrete array types; these ordering operators correspond to lexicographic
order (see
4.5.2).
Examples
Examples of string
objects:
Stars : String(1 .. 120) := (1 .. 120 => '*' );
Question : constant String := "How many characters?";
-- Question'First = 1, Question'Last = 20
-- Question'Length = 20 (the number of characters)
Ask_Twice : String := Question & Question; --
constrained to (1..40)
Ninety_Six :
constant Roman := "XCVI"; --
see 3.5.2 and 3.6