PROFDINFO.COM

Votre enseignant d'informatique en ligne

Les chaînes de caractères string

Inclusion de la librairie

#include <iostream>
#include <string> // Obligatoire pour pouvoir utiliser les chaînes

using namespace std;

Déclaration d'une variable de type string

int main()
{
   string Chaine; // Déclaration de la variable Chaine de type string
}

Initialisation d'une chaine de caractères

int main()
{
   string Chaine1 = "Eric";    // Initialisation
   string Chaine2 = "Paul";   // Initialisation

   Chaine2 = "Joan";          // Affectation
   Chaine1 = Chaine2;         // Affectation 
   cout << "Mon nom est: " << Chaine1 << endl; 
}

Lecture d'une chaîne au clavier et affichage d'une chaîne à l'écran

int main()
{
   string Chaine;

   cin >> Chaine;                         // Lecture
   cout << "Votre chaine est:";
   cout << Chaine;                        // Écriture
   cout << endl;
}

N.B.: On doit utiliser la fonction getline(cin, Chaine) au lieu de l'opérateur >> pour lire des chaines qui contiennent des espaces.

Concaténation de chaînes

int main()
{
    string Chaine1 = "Paul";
    string Chaine2 = " Blais";
    string Chaine3;

    // Concaténation de deux variables
    Chaine3 = Chaine1 + Chaine2;
    cout << "Ton nom est " << Chaine3 << endl;

    // Concaténation d'une variable et d'une constante littérale
    Chaine3 = "Allo " + Chaine1; 
    cout << Chaine3 << endl;
}

Comparaison de chaînes de caractères

int main()
{
    string chaine1 = "Bonjour !";
    string chaine2 = "Comment allez-vous ?";

    if (chaine1 == chaine2)   // On peut aussi utiliser !=
    {
        cout << "Les chaines sont identiques" << endl;
    }
    else
    {
        cout << "Les chaines sont differentes" << endl;
    }
 }

Connaître la longueur d’une chaîne

int main()
{
     string maChaine;

     maChaine = "Bonjour";
     cout << "Longueur de la chaine : " << maChaine.size();  // 7 !!
}      

Accéder aux caractères de la chaîne

On peut lire ou modifier une caractère d'une chaîne en spécifiant la position du caractère entre crochets []. Le premier caractère est à la position 0, le deuxième à la position 1, etc. Le dernier caractère est à la position N-1 si N contient la longueur de la chaîne.

int main()
{
   string Chaine = "Jean"; 

   cout << "Le caractère à la position 1 est " << Chaine[1] << endl;
   Chaine[1] = 'o'; 
   cout << "Mon nom est " << Chaine << endl;

   int NombreDeA = 0;

   for(int i=0;i< Chaine.size();i++)
   {
    	if (Chaine[i] == 'a')
        {
        	NombreDeA++;
        }
   }

   cout << "Il y a " << NombreDeA << " lettre(s) 'a' dans mon nom." << endl;
}