Exercice Algorithme : Les Chaînes
![](/images/thumb/46/default.png)
Exercice 1 :
Faire un algorithme qui détermine la longueur d’une chaîne de caractères.
Faire ensuite de deux manières différentes, une fonction qui permet de copier la chaîne d’une source dans une chaîne destination.
Exercice 2 :
Faire une fonction de concaténation (ajoute à la fin de la première chaîne de caractères le contenu de la deuxième chaîne de caractères.)
Faire une fonction de Comparaison qui compare deux chaînes de caractères suivant l’ordre lexicographique.
Faire une fonction qui efface une partie de la chaîne en spécifiant une longueur d’effacement et un indice à partir duquel il faut effacer.
Fonction Longueur (chaine : Tchaine) : entier
Var i : entier
Début
iÍ0
Tant que chaine[ i ] != END faire iÍ i+1
Retourner (i)
Fin
Fonction de copie : première méthode :
Fonction Copier (E : src : Tchaine, S : dest : Tchaine)
Var i, Lsrc : entier
Début
LsrcÍLongueur(src)
Pour i de 0 à Lsrc faire dest[ i ]Ísrc [ i ]
Fin
Fonction de copie : deuxième méthode : plus optimisée :
Fonction CopieOptimisée (E : src : Tchaine, S : dest : Tchaine)
Var i : entier
Début
iÍ0
tant que src[ i ] != END faire
dest [ i ] Í src [ i ]
i Í i+1
dest [ i ] Í src [ i] {pour copier en fin de fichier la sentinelle}
Fin
Début
iÍ0
LsrcÍLongueur (src1)
Tant que src2 [ i ] != END
Src1[ Lsrc1+i]Í src2[ i ]
iÍi+1
src1[Lsrc1+i]Ísrc2[ i ]
Fin
Pour faire la fonction comparer, il faut d’abord créer une fonction qui compare les
caractères :
Fonction ComparerChar (char a, char b)
Début
Si a
Si a=b retourner (0)
Si a>b retourner (1)
Fin
On peut maintenant faire la fonction de comparaison de chaînes de caractères qui utilisera la
fonction ComparerChar :
Fonction Comparer (E : src1 : Tchaine, E : src2 : Tchaine)
Var i, L1, L2, cmp : entiers
Début
L1ÍLongueur (src1)
L2ÍLongueur (src2)
IÍ0
Tant que (i
Si i=L1 ou i=L2 alors
Si i
Sinon
Si i
Sinon cmpÍ0
Sinon cmpÍComparerChar(src1[ i ], src2 [ i ])
Retourner (cmp)
Fin
Fonction Effacer (ES : src : Tchaine, E : indice : entier, E : lg : entier)
Var i, Lsrc : entiers
Début
LsrcÍLongueur (src)
Pour i de indice+lg à Lsrc faire
Src[i-lg]Ísrc[ i ]
Fin