1 / 11

Les chaînes de caractères

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.

odina
Download Presentation

Les chaînes de caractères

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 ‘\0’. (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 : Bases de la programmation en C++

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

  3. 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] =‘\0’; • A la déclaration //comme un tableau char phrase [200] = { 'B', 'o', 'n', 'j', 'o', 'u', 'r', '\0' }; // 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++

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

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

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

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

  8. 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 ChDest[ ] , char ChSource[ ] ) • Copie la chaîne ChSource dans ChDest. • Strcmp ( char Ch1[ ] , char Ch2[ ]) • Retourne 0 si les 2 chaînes sont identiques. • Strcat (char ChDest[ ] , char ChSource[ ] ) • Recopie la chaine ChSource à la suite de ChDest. Bases de la programmation en C++

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

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

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

More Related