Next: , Previous: 3.6.2, Up: 3.6


3.6.3 String Types

Static Semantics

1
A one−dimensional array type whose component type is a character type is called a string type.

2/2
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:

3

     subtype Positive is Integer range .. Integer'Last;

4/2

     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;
     

     NOTES

5

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

6
Examples of string objects:

7

     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)

8

     Ask_Twice  String  := Question Question;   −− constrained to (1..40)
     Ninety_Six constant Roman   := "XCVI";   −− see 3.5.2 and 3.6