Les chanes de caractres Le type chane nexiste

  • Slides: 11
Download presentation
Les chaînes de caractères Le type « chaîne » n’existe pas en C, C++.

Les chaînes de caractères Le type « chaîne » n’existe pas en C, C++. certains ont été développé dans des librairies: string (librairie STL). CString (librairie MFC). En langage C++: Une chaîne de caractères est un tableau d’élément de type char. Dont le dernier élément est le caractère nul ‘’. (code ASCII: 0). Ce caractère n’est pas affichable. Il indique la fin de la chaîne de caractères. Exemple: La chaîne "Bonjour" est représentée par : B o n Bases de la programmation en C++ j o u r 1

Comment déclarer une chaîne de caractères On déclare un tableau de caractères. De taille

Comment déclarer une chaîne de caractères On déclare un tableau de caractères. De taille Longeur. Chaine + 1 (réservation de place en mémoire) B o n j o u r char Nom_du_tableau[Nombre_elements + 1] ; On peut mettre une taille max (ex: 200). La chaîne se terminera au ‘’. (on aura réserver de la place pour rien) Exemples char mot [ 50 + 1] ; char phrase [ 250 ] ; Bases de la programmation en C++ 2

Initialisation d’une chaîne Caractère par caractère char mot [3 +1 ]; //déclaration //Initialisation mot

Initialisation d’une chaîne Caractère par caractère char mot [3 +1 ]; //déclaration //Initialisation mot [0] =‘a’; mot [1] =‘i’; mot [2] =‘e’; mot [3] =‘’; A la déclaration //comme un tableau char phrase [200] = { 'B', 'o', 'n', 'j', 'o', 'u', 'r', '' }; // spécifique aux chaîne de caractères // le caractère de fin de chaîne est géré automatiquement char phrase [200] = "Bonjour" ; Bases de la programmation en C++ 3

Initialisation d’une chaîne Exemple char Mon. Mot [4 + 1] ; Mon. Mot [0]

Initialisation d’une chaîne Exemple char Mon. Mot [4 + 1] ; Mon. Mot [0] = ‘M’; Mon. Mot [1] = ‘i’; Mon. Mot [2] = ‘a’; Mon. Mot [3] = ‘m’; Mon. Mot [4] = ‘’; // réservation de place en mémoire //initialisation caractère par caractère // Déclaration + initialisation // initialisation comme un tableau classique char Mon. Mot [4 + 1] = { ‘M’, ‘i’, ‘a’, ‘m’, ‘’ } ; // Déclaration + initialisation //Spécifique aux chaînes de caractères char Mon. Mot [4 + 1] = "Miam" ; // le ‘’ est rajouté automatiquement Bases de la programmation en C++ 4

Caractères spéciaux � caractère de fin de chaîne " guillemet \ barre oblique. n

Caractères spéciaux caractère de fin de chaîne " guillemet \ barre oblique. n retour à la ligne r retour chariot cout<<"Pin. Pon"; > Pin. Pon cout<<"Pin Pon"; > Pin cout<<"Pin\Pon"; > PinPon cout<<"Pinn. Pon"; > Pin Pon cout<<"Pinr. Pon"; Bases de la programmation en C++ > Pon 5

Exemple int Longueur. Chaine( char ch[ ] ); // Déclaration de la fonction Longueur.

Exemple int Longueur. Chaine( char ch[ ] ); // Déclaration de la fonction Longueur. Chaine int main() { char chaine[255] = "Bonjour"; int longueur = Longueur. Chaine(chaine); cout<<longueur<<endl; // Le programme affiche 7 } /* Définition de la fonction Longueur. Chaine. */ int Longueur. Chaine( char ch[ ] ) { int i = 0; while ( ch[i] != ‘’) // on parcours la chaîne jusqu’à arriver au caractère ‘’ i++; return i; } Bases de la programmation en C++ 6

Restriction On ne peut pas affecter une chaîne en dehors de la déclaration. char

Restriction On ne peut pas affecter une chaîne en dehors de la déclaration. char mot[8] = "bonjour"; // OK char mot[8] ; mot = "bonjour"; // ERREUR On ne peut pas affecter une chaîne à une autre. char mot 1[8] ; char mot 2[8] ; // déclaration de deux chaînes … mot 1 = mot 2; // ERREUR On ne peut pas comparer deux chaînes. char mot 1[8] , char mot 2[8] ; // déclaration de deux chaînes … if(mot 1 == mot 2) // ERREUR Bases de la programmation en C++ 7

Fonctions de la bibliothèque standard Fonctions de manipulation de chaînes de caractères. (définies dans

Fonctions de la bibliothèque standard Fonctions de manipulation de chaînes de caractères. (définies dans string. h). Strlen ( char Ch[ ]) Retourne la longueur de la chaîne Ch. Strcpy ( char Ch. Dest[ ] , char Ch. Source[ ] ) Copie la chaîne Ch. Source dans Ch. Dest. Strcmp ( char Ch 1[ ] , char Ch 2[ ]) Retourne 0 si les 2 chaînes sont identiques. Strcat (char Ch. Dest[ ] , char Ch. Source[ ] ) Recopie la chaine Ch. Source à la suite de Ch. Dest. Bases de la programmation en C++ 8

Exemple int main() { // on déclare 2 chaînes char chaine 1[200] = "bonjour";

Exemple int main() { // on déclare 2 chaînes char chaine 1[200] = "bonjour"; char chaine 2[200]; // L’utilisateur rentre chaine 2 cout<<"Ecrivez votre nom"<<endl; cin >> chaine 2; > Ecrivez votre nom Guillaume > bonjour Guillaume //on ajoute un espace à chaine 1 strcat(chaine 1, " "); //on ajoute chaine 2 à chaine 1 strcat(chaine 1, chaine 2); cout<<chaine 1<<endl; } Bases de la programmation en C++ 9

Code ASCII et caractères En c++, un caractère est équivalent à son code ASCII

Code ASCII et caractères En c++, un caractère est équivalent à son code ASCII (0 => 255). Exemple: char ascii='a'; cout<< ascii; >a char ascii='a‘+1; cout<< ascii; >b int ascii='a’; cout<< ascii; > 97 char ascii=99 cout<< ascii; >c Bases de la programmation en C++ 10

Complément TP 5 Écrire une fonction qui prend en paramètre le nom d’un étudiant

Complément TP 5 Écrire une fonction qui prend en paramètre le nom d’un étudiant et renvoie sa note Prototype Int Get. Note(const char nom[ ], const etudiant Tab[ ], const int n); Bases de la programmation en C++ 11