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;
57  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 
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe