Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMathis Roche Modifié depuis plus de 10 années
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
PASSAGE DE PARAMÈTRES PAR RÉFÉRENCE
Rappel : Si on modifie le contenu d’un 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 d’obtenir l’adresse d’une variable en mémoire à l’aide de & devant le nom de la variable (pensez scanf). L’adresse d’une 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 à l’aide 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 à l’aide de * lors de la définition. Exemple : int x; int* pointeur_sur_x = &x;
6
PASSAGE DE PARAMÈTRES PAR RÉFÉRENCE
L’adresse d’une 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 à l’aide 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
Chaînes de caractères Les chaînes de caractères. a l o \0
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 » a l o \0
10
Chaînes de caractères On peut définit une chaîne de caractères à l’aide de crochets et aussi à l’aide d’une étoile. char message [ ] = «Ceci est un exemple»; char* message = «Ceci est un exemple»; Si on ne fait pas d’affectation, il n’y a pas d’espace 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. L’instruction printf(message); causera un problème à l’exécution si la variable ne contient pas de ‘\0.
13
Chaînes de caractères Avantage ? DésAvantage ?
Élimine la variable qui vient avec les tableaux statiques habituellement. Nous n’avons 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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.