La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Sixième cours Les chaînes de caractères et le passage de paramètres par référence –Passage de paramètres par référence –String.h.

Présentations similaires


Présentation au sujet: "Sixième cours Les chaînes de caractères et le passage de paramètres par référence –Passage de paramètres par référence –String.h."— Transcription de la présentation:

1 Sixième cours Les chaînes de caractères et le passage de paramètres par référence –Passage de paramètres par référence –String.h

2 PASSAGE DE PARAMÈTRES PAR RÉFÉRENCE

3 Rappel : Si on modifie le contenu dun tableau reçu en paramètre dans une fonction, le paramètre effectif associé est affecté. On dit que les tableaux sont passés par référence plutôt que par copie.

4 PASSAGE DE PARAMÈTRES PAR RÉFÉRENCE Nouveau : Il est possible dobtenir ladresse dune variable en mémoire à laide de & devant le nom de la variable (pensez scanf). Ladresse dune variable est appelé une référence. Si on transmet une référence en paramètre effectif à un sous-programme, il peut modifier le contenu de la variable se trouvant à cette adresse à laide de * devant le nom de la variable. Exemple : *ptr_nb = *ptr_nb + 1

5 PASSAGE DE PARAMÈTRES PAR RÉFÉRENCE Une variable qui contient une référence sur une autre est appelé un pointeur. On définit une variable de type pointeur à laide de * lors de la définition. Exemple : int x; int* pointeur_sur_x = &x;

6 PASSAGE DE PARAMÈTRES PAR RÉFÉRENCE Ladresse dune variable est appelé une référence. Une variable qui contient une référence sur une autre est appelé un pointeur. On définit une variable de type pointeur à laide de * lors de la définition. Exemple : int x; int* pointeur_sur_x = &x;

7 PASSAGE DE PARAMÈTRES PAR RÉFÉRENCE Exercices : Écrire une fonction qui échange deux valeurs sans pointeur. void echanger(int v1, int v2); Écrire une fonction qui échange deux valeurs avec pointeurs. void echanger(int* v1, int* v2);

8 Chaînes de caractères

9 Les chaînes de caractères. –On appelle le caractère 0 (\0) le caractère nul. –Les valeurs entre guillemets sont représentées en mémoire sous forme de tableau de caractères se terminant par le caractère nul. –Exemple : « Allo » allo\0

10 Chaînes de caractères –On peut définit une chaîne de caractères à laide de crochets et aussi à laide dune étoile. char message [ ] = «Ceci est un exemple»; char* message = «Ceci est un exemple»; –Si on ne fait pas daffectation, il ny a pas despace mémoire réservé pour la chaîne. Ex; char * message; //problème tableau vide

11 Chaînes de caractères –Deuxième façon de définir une variable chaîne de caractères char message[] = {c,e,c,i,, e,s,t,,u,n,,e, x,e,m,p,l,e,\0}; Dans les deux cas, le caractère nul DOIT terminer la chaîne.

12 Chaînes de caractères –Les fonctions standard du C qui attendent une chaîne de caractères assument que le caractère nul est le dernier caractère de la chaîne. –Linstruction printf(message); causera un problème à lexécution si la variable ne contient pas de \0.

13 Chaînes de caractères Avantage ? –Élimine la variable qui vient avec les tableaux statiques habituellement. Nous navons plus besoin du nombre déléments significatifs. DésAvantage ? –Si on oublie le caractère de fin, le programme plante.

14 String.h

15 Chaînes de caractères Type chaîne de caractères : –Catégorie de données : Suite consécutives de caractères en mémoire. –Limites : La taille et le type des cases –Opérations : Les mêmes que sur les tableaux Il existe un module standard pour la gestion du type chaîne de caractères (string.h). Liste des prototypes : »strcmp //compare deux chaînes »strcat //concatène deux chaînes »strcpy //copy une chaîne dans une autre »strlen //retourne le nombre de caractères »strupr //change en majuscules »strlwr //change en minuscules »...

16 Chaînes de caractères Exercices en classe : Écrivons ces fonctions : »strcmp //compare deux chaînes »strcat //concatène deux chaînes »strcpy //copy une chaîne dans une autre »strlen //retourne le nombre de caractères »strupr //change en majuscules »strlwr //change en minuscules »... Voir définitions et solutions possibles:

17 FIN DU COURS


Télécharger ppt "Sixième cours Les chaînes de caractères et le passage de paramètres par référence –Passage de paramètres par référence –String.h."

Présentations similaires


Annonces Google