11
Bases de la programmation en C++ 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 : B o n j o u r \0

Les chaînes de caractères

  • Upload
    odina

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Les chaînes de caractères

Bases de la programmation en C++ 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 :

B o n j o u r \0

Page 2: Les chaînes de caractères

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

B o n j o u r \0

char mot [ 50 + 1] ;char phrase [ 250 ] ;

Page 3: Les chaînes de caractères

Bases de la programmation en C++ 3

Initialisation d’une chaîne

Caractère par caractèrechar mot [3 +1 ]; //déclaration

//Initialisationmot [0] =‘a’;mot [1] =‘i’;mot [2] =‘e’;mot [3] =‘\0’;

A la déclaration//comme un tableauchar 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é automatiquementchar phrase [200] = "Bonjour" ;

Page 4: Les chaînes de caractères

Bases de la programmation en C++ 4

Initialisation d’une chaîne

Exemple

char MonMot [4 + 1] ; // réservation de place en mémoireMonMot [0] = ‘M’; //initialisation caractère par caractèreMonMot [1] = ‘i’;MonMot [2] = ‘a’;MonMot [3] = ‘m’;MonMot [4] = ‘\0’;

// Déclaration + initialisation// initialisation comme un tableau classiquechar 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

Page 5: Les chaînes de caractères

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

Page 6: Les chaînes de caractères

Bases de la programmation en C++ 6

Exempleint 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;}

Page 7: Les chaînes de caractères

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] ;char mot2[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

Page 8: Les chaînes de caractères

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.

Page 9: Les chaînes de caractères

Bases de la programmation en C++ 9

Exempleint 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

Page 10: Les chaînes de caractères

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=99cout<< ascii;

> a

> b

> 97

> c

Page 11: Les chaînes de caractères

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);