Fonctions sur les chaînes de caractères
Transcription
Fonctions sur les chaînes de caractères
TD Techniques informatiques Feuille n=°5 Fonctions sur les chaînes de caractères On considère que l’on dispose des fonctions suivantes qui existent d’ailleurs dans le langage CAML : Fonction CAML string_length Fonction Longueur Type : string -> int nth_char N-ème caractère SousChaîne : string -> int ->char sub_string : string ->int ->int ->string Description string_length ch = nombre de caractères de ch nth_char ch n = le n-ème caractère de la chaîne ch sub_string ch d l = la souschaîne de ch de longueur l, à partir du d-ème caractère Attention : a) le premier caractère d’une chaîne est le caractère à la position 0. b) pour tous les exercices, donner une solution récursive et une autre itérative. Exercice n=°1 : Écrire une fonction qui calcule l’inverse d’une chaîne. Exemple : inverse ("cours") = "sruoc" Exercice n=°2 : Écrire une fonction qui teste si son argument (de type chaîne) est un palindrome (un mot qui se lit aussi bien à l’endroit qu’à l’envers). Exemple : palindrome ("laval") = true Exercice n=°3 : Écrire une fonction qui compte le nombre d’occurrences d’un caractère c dans une chaîne ch. Exemple : nb_occ (`o`, "coucou")= 2 Exercice n=°4 : Écrire une fonction qui compte le nombre de voyelles dans une chaîne ch. Exemple : nb_voy ("coucou")= 4 Exercice n=°5 : Écrire une fonction qui teste si une chaîne ch1 appartient à une autre chaîne ch2. Exemple : appartient ("ara", "caractère")= true Bi-Deug LFTI – 2004/2005 D.Battistelli – D.Sofronie – J.Couto TD Techniques informatiques Exercice n=°6 : Écrire une fonction qui indique la position de la première occurrence d’une chaîne ch1 dans une autre chaîne ch2. Exemple : position ("ma", "maman")=0 Exercice n=°7 : Écrire une fonction qui indique le nombre d’occurrences d’une sous-chaîne ch1 dans une chaîne ch2. Exemple : nb_occ_ch("to", "toto")=2 Exercice n=°8 Écrire une fonction qui remplace la chaîne ch1 par la chaîne ch2, dans la chaîne ch3. Exemple : remplace ("os", "art", "position")= "partition" remplace ("os", "ros", "osos")= "rosros" remplace ("os", "oso", "oss")= "osos" Bi-Deug LFTI – 2004/2005 D.Battistelli – D.Sofronie – J.Couto