Programación en Ada / Tipos / Strings
De Wikilibros, la colección de libros de texto de contenido libre.
En Ada los strings son un tipo especial de array que está implicitamente definido en el paquete Standard como:
typeStringisarray(Positiverange<>)ofCharacter;
Que el rango se defina sobre el subtipo Positive implica que ningún string de Ada puede empezar en 0. Esta es una diferencia con los strings de C/C++, la otra es que un string de Ada no tiene porqué terminar en NUL, de hecho puede tener caracteres NUL intercalados.
Los literales de tipo String se encierran entre comillas.
Al ser String un array no restringido no podemos definir variables de ese tipo sin definir explícitamente o implícitamente los límites del array.
Nombre : String (1 .. 8); -- Explicitamente
Nombre : String := "Fulanito"; -- Implicitamente
El operador & está definido para concatenar strings entre sí y cadenas con strings.
Nombre_Completo : constant String := Nombre & ' ' & Apellidos;
Puesto que hay dos tipos de caracteres, hay también dos tipos de strings: String y Wide_String que es un array de Wide_Character. En Ada 2005 aparece también el tipo Wide_Wide_String cuyos elementos son Wide_Wide_Character.
Para facilitar el uso de los strings hay varios paquetes predefinidos para su manejo:
- Ada.Strings.Fixed: para strings de tamaño fijo.
- Ada.Strings.Bounded: para strings con longitud variable y un limite superior definido.
- Ada.Strings.Unbounded: para strings con longitud variable y sin límites de tamaño.
Para manejo de Wide_Strings existen otros tres paquetes predefinidos que se nombran anteponiendo Wide_ a cada uno.

