You are on page 1of 2

Programmation Impérative

R. Rioboo
Année 2011-2012

Manipulation de chaines de caractères


Exercice 1
Écrire une procédure permutant deux entiers. La tester depuis la fonction main.

Exercice 2
Qu’affiche le programme suivant ?
#include <stdio.h>

main()
{
char *c[] = {"ENTER","NEW","POINT","FIRST"};
char **cp[] = {c+3,c+2,c+1,c};
char ***cpp = cp;

printf("%s\n",**++cpp);
printf("%s\n",*--*++cpp+3);
printf("%s\n",*cpp[-2] +3);
printf("%s\n",cpp[-1][-1] +1);
}

Exercice 3
Écrire la fonction copie qui recopie le contenu de la chaine de caractères passée en deuxième paramètre dans
celle passée en premier paramètre.
Écrire sans utiliser copie la fonction copie alloc qui retourne une copie de la chaine de caractères
qu’elle reçoit en argument. Le mirroir d’un mot est obtenu en inversant l’ordre de ses lettres.
Écrire la fonction mirroir qui recopie le mirroir de la chaine de caractères passée en deuxième paramètre
dans celle passée en premier paramètre.
Écrire sans utiliser mirroir la fonction mirroir alloc qui retourne le mirroir de la chaine de caractères
qu’elle reçoit en argument.

Exercice 4
Écrire une focntion concatene qui prend deux chaines de caractères en arguement et renvoie la concaténation
des deux chaines.
Exercice 5
Un mot u est facteur gauche d’un autre mot v si u est le début de v.
– Écrire la fonction facteur gauche qui prend deux chaines de caractères en argument et renvoie un
entier non nul si le premier est un facteur aguche du deuxième.
– En déduire une focntion sous chaine qui teste si son premier argument est un sous mot de son deuxième
argument.
– Mêmes questions avec la fonction facteur droit qui teste si premier est une fin de son deuxième.
On pourra remarquer que les deux relations sont des relations d’ordre sur les mots.

Exercice 6
L’ordre lexicographique sur les chaines de caractères est l’ordre du dictionnaire.
Question 6.1
Écrire la fonction lexico smaller qui l’implante. On retournera un entier négatif (resp nul ou positif) si la
première chaine est avant (resp. egale ou après) dans l’ordre lexicographique.

Question 6.2
Écrire un programme qui prend en arguements deux chaines de caractères et qui imprime si son premier
argument est inférieur, égal ou supérieur dans l’ordre lexicographique.

You might also like