Index es una función cuyo cometido es encontrar una subristra en una ristra. Existen seis versiones de Index para cada uno de los tres tipos de ristras (tamaño fijo, tamaño limitado y tamaño dinámico); para utilizarlos hay que incluir las librerías que correspondan según el tipo de ristra (Ada.Strings.Fixed, Ada.Strings.Bounded, Ada.Strings.Unbounded).
En lo que sigue, el tipo Ristra representa uno de los tres tipos de ristras, según corresponda.
function Index (Source : in Ristra; Pattern : in String; [From : in Positive;] Going : in Direction := Forward; Mapping : in Mapa_de_Caracteres) return Natural; Mapa_de_Caracteres ::= Maps.Character_Mapping := Maps.Identity; | Maps.Character_Mapping_Function
function Index (Source : in Ristra; Set : in Maps.Character_Set; [From : in Positive;] Test : in Membership := Inside; Going : in Direction := Forward) return Natural;
-- En Ada.Strings están definidas algunas constantes -- como Inside, Outside y Backward. with Ada.Strings; use Ada.Strings with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; -- En Strings.Maps se encuentra la función To_Set() with Ada.Strings.Maps; use Ada.Strings.Maps; -- En Maps.Constants está definida la constante Lower_Set with Ada.Strings.Maps.Constants; use Ada.Strings.Maps.Constants; ... Din : Unbounded_String; P : Integer; ... Din := To_Unbounded_String ("Universidad de Las Palmas de Gran Canaria"); P := Index (Din, "ver"); -- P = 4 P := Index (Din, "de"); -- P = 13 P := Index (Din, "de", 15); -- P = 27 P := Index (Din, "de", Backward); -- P = 27 P := Index (Din, "patata"); -- P = 0 P := Index (Din, To_Set ("aeiou")); -- P = 3 P := Index (Din, To_Set ("aeiou"), Outside, Backward); -- P = 39