Université Ibn Zohr A.U.
2017-2018 Exercice 4
Faculté des Sciences SMI3 Ecrire une fonction qui prend en paramètre une chaîne de caractères CH et
Département d’Informatique
retourne la longueur de la chaîne à l'aide d'un pointeur P.
TP4 Programmation C Exercice 5
(Les pointeurs, les chaines de caractères et les fonctions) Ecrire une fonction qui prend en paramètre deux chaînes de caractères et
qui les concatène.
Exercice 1
Soit un pointeur p qui pointe vers un tableau A comme suit : Exercice 6 (examen 2015)
int A[] = {12,23,34,45,56,67,78,89,90} ;
int *p ; Ecrire un programme permettant de tester une fonction dont le prototype
p = A; est le suivant :
char * prefixecommun(char * chaine1, char * chaine2)
Quelles valeurs ou adresses fournissent les expressions suivantes :
qui compare lettre à lettre deux chaines de caractères et renvoie le plus
1. printf(" *p+2 : %d \n", *p+2 ); grand préfixe commun. Cette fonction doit renvoyer le pointeur NULL si
2. printf(" *(p+2) : %d \n", *(p+2) ); les deux chaines n’ont aucun préfixe en commun.
3. printf(" p+1 : %d \n", p+1 );
4. printf(" &p+1 : %d \n", &p+1 ); Remarque :
5. printf(" &A[4]-3 : %d \n", &A[4]-3 ); On pourra utiliser les fonctions de la bibliothèque string.h (gets, puts et strlen)
6. printf(" &A[7]-p : %d \n", &A[7]-p );
7. printf(" p+(*p-10) : %d \n", p+(*p-10) ); Exercice 7 (examen 2014)
8. printf(" (*p)++ : %d \n", (*p)++ ); 1. Ecrire une fonction char *Recherche(char *s, char c) qui
9. printf(" ++*p**p : %d \n", *p++**p );
renvoie un pointeur vers la première occurrence dans la chaine s du
10. printf(" ++*p**p : %d \n", ++*p**p );
caractère c passé en argument. Si ce caractère n’apparaît pas dans la
chaine, la fonction devra renvoyer NULL.
Exercice 2
Ecrire un programme qui lit un entier X et un tableau A du type int au 2. A l’aide de la fonction précédente, écrire une fonction int
clavier et élimine toutes les occurrences de X dans A en tassant les Compte(char *s, char c) qui renvoie le nombre d’occurrence de c
éléments restants. Le programme utilisera les pointeurs P1 et P2 pour dans s.
parcourir le tableau. Exercice 8 (examen 2017)
Exercice 3 (examen 2015) Écrire une fonction qui prend en argument une chaîne de caractères et retourne
Ecrire un programme qui vérifie si une chaîne est un carré ou pas (avec une chaine en répétant chaque caractère n fois.
utilisation d’indices puis pointeurs) Prototype: char * répéter (char *s, int n);
Définition : Une chaîne de caractères est un carré si elle se compose de 2 Exemple : l’appel avec "toto" et 3 retournera "tttoootttooo".
chaînes identiques.
Exemple : "chercher" et "bonbon" sont des carrés.