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

Les chaînes de caractères et le langage C

Présentations similaires


Présentation au sujet: "Les chaînes de caractères et le langage C"— Transcription de la présentation:

1 Les chaînes de caractères et le langage C

2 Déclaration et initialisation
Il n'existe pas de type chaîne en C Une chaîne de caractères est : Un tableau de caractères Terminée par un caractère de fin : '\0'

3 Stockage d'une chaîne code ascii Indice
Tableau tabCar 66 1 65 .. 82 Elle peut être initialisée lors de sa déclaration avec une chaîne de caractères encadrée du symbole " char tabCar[]= "BAR"; ou char tabCar[]= { 'B', 'A', 'R', '\0' }; char tabCar[]= { 66, 65, 82, 0 }; Attention !!! Une chaîne de caractères initialisée à la déclaration n'est pas modifiable par la suite.

4 Représentation en mémoire
Déclaration et initialisation simultanée: char message[]="bonjour";// occupe en mémoire 8 octets

5 Déclaration Sous forme de tableau : Sous forme dynamique :
char chaine[TAILLEMAX] ; // ma chaîne pourra contenir au maximum TAILLEMAX-1 caractères Sous forme dynamique : char *chaine ; // chaine ne pourra pas être utilisé avant qu'un espace mémoire ne lui soit attribué.

6 Chaînes dynamiques Pour pouvoir utiliser les chaînes de caractères dynamiques, il faut réserver la place nécessaire en mémoire. char *chaine ; chaine = (char *)malloc(nombreDOctets*sizeof(char)) ; Exemple : chaine = (char *)malloc(5*sizeof(char)) ; chaine pourra recevoir une chaîne de caractères de 4 caractères.

7 Lecture et écriture Opérations de lecture au clavier habituelle :
scanf, gets Opérations d'écriture de chaîne à l'écran : printf, puts

8 Fonctions de manipulation de chaînes
Longueur d'une chaîne : strlen Concaténation de chaînes : strcat Comparaison de chaînes : strcmp(il n'est pas possible d'utiliser les opérateurs de comparaison ==, <, >, etc ) Copie de chaînes : strcpy (il n'est pas possible d'utiliser l'opérateur d'affectation = )

9 Exemple d'utilisation char *nom ; char buffer[TAILLEMAX] ;
Pas de symbole & Taille de la chaine saisie char *nom ; char buffer[TAILLEMAX] ; printf("donnez votre nom "); scanf("%s",buffer); nom=(char*)malloc( (strlen(buffer)+1) * sizeof(char) ) ; strcpy(nom, buffer); printf("votre nom est : %s \n",nom); free(nom); Pour le \0 Copie de la chaîne saisie dans la variable nom Libération de l'espace mémoire réservé pour nom

10 Exemple d'utilisation

11 Conclusion Pas de type chaîne, mais un type « char * »
Les opérateurs classiques ne peuvent pas être utilisés (affectation, comparaison) Il faut allouer dynamiquement de la place en mémoire pour stocker une chaîne (malloc) Il faut libérer la mémoire allouée lorsqu'on en a plus besoin (free).


Télécharger ppt "Les chaînes de caractères et le langage C"

Présentations similaires


Annonces Google