Auteur : Mohamed Messabihi
Matière : Introduction à l'algorithmique k Mohamed.Messabihi@gmail.com
+ https://sites.google.com/site/informatiquemessabihi/
Université Abou Bakr Belkaïd - Tlemcen Faculté des sciences 1ère L.M.D. MI 2014-2015
9 TP : Manipulation des chaînes de caractères
9.1 Initialisation des chaînes de caractères
Lesquelles des chaînes suivantes sont initialisées correctement ? Corrigez les déclarations fausses et indiquez pour chaque chaîne de caractères le nombre d'octets qui sera réservé en mémoire.
1 char a[ ] = "un\ ndeux \ ntrois \n"; 2 char b[12] = "un deux trois ";
3 char c[ ] = 'abcdefg ';
4 char d[10] = 'x';
5 char e[5] = " cinq ";
6 char f[ ] = " Cette " " phrase " " est coupée "; 7 char g[2] = {'a', '\0 '};
8 char h[4] = {'a', 'b', 'c'};
9 char i[4] = "'o'";
9.2 Fonctions utiles
1. Écrire la fonction chaine_Majuscule qui convertit toutes les lettres d'une chaîne en ma- juscules, sans utiliser de variable d'aide. Exemple : "Toto1 Loulou2" devient "TOTO1 LOULOU2"
2. Écrire une fonction supprime_Espace qui supprime les espaces et tabulations d'une chaîne de caractères. Cette fonction ne doit pas utiliser de tableau intermédiaire. Exemple :
"ceci est une phrase !" devient "ceciestunephrase !"
3. Écrire une fonction uniquement_Lettres prenant pour paramètre une chaîne de caractères s et retournant une chaîne contenant uniquement les lettres de s. Exemple : "aB'3$ @kj
" devient "aBkj".
4. Écrire une fonction iverse_Chaine qui inverse une chaîne de caractères et met le résultat dans une autre. Les chaînes sont données en argument. Exemple : " ! looc" devient
"cool !"
5. Écrire la fonction nombreMots qui retourne comme résultat le nombre de mots contenus dans une chaîne de caractères CH.
6. Écrire la fonction frequenceMot qui retourne le nombre d'occurrence d'un mot m dans une chaîne de caractère CH.
7. Écrire un programme pour tester toutes les fonctions précédentes.
B Mohamed.Messabihi@gmail.com Page 1
9.3 Palindrome
Un palindrome strict est une séquence de caractères symétrique. Par exemple il peut s'agir d'un mot qui peut-être lu indiéremment dans un sens ou dans l'autre. Par exemple : radar, elle, kayak, etc.
1. Écrire une fonction booléenne est_Palindrome_Strict qui permet de tester si une chaîne de caractères est un palindrome strict.
D'autre chaînes peuvent également être qualiées de palindromes non strict : ce sont les phrases dont la séquence des lettres formant les mots forment un palindrome strict lorsque l'on supprime les signes de ponctuation.
Par exemple :
"Engage le jeu que je le gagne"
"Eh ! ca va la vache ?"
2. Écrire une fonction est_Palindrome prenant pour paramètre une chaîne de caractères et renvoyant 1 s'il s'agit d'un palindrome non strict et 0 sinon.
Remarque.
On ne considère ici aucune lettre accentuée.
Pensez à réutiliser les fonctions dénies dans l'exercice précédent.
9.4 Chaînes de caractères vs Nombres
1. Écrire la fonction stringToInt qui retourne la valeur numérique d'une chaîne de carac- tères représentant un entier (positif ou négatif) du type long. Si la chaîne ne représente pas une valeur entière correcte, la fonction arrête la conversion et fournit la valeur qu'elle a su reconnaître jusqu'à ce point.
2. Écrire la fonction stringToDouble qui retourne la valeur numérique d'une chaîne de caractères représentant un réel en notation décimale. Si la chaîne ne représente pas une valeur décimale correcte, la fonction arrête la conversion et fournit la valeur qu'elle a su reconnaître jusqu'à ce point.
3. Écrire la fonction intToString qui construit une chaîne de caractères CH qui représente un nombre entier N du type long.
4. Écrire la fonction doubleToString qui construit une chaîne de caractères CH qui repré- sente un nombre réel N avec 4 positions derrière la virgule.
5. Écrire un programme principal pour tester les fonctions ci-dessus.
B Mohamed.Messabihi@gmail.com Page 2