C CHAP12
Il s'agit d'une classe standard qui permet de représenter une chaîne de caractères.
Pour l'utiliser, il faut écrire le header #include<string>
Cette classe encapsule des données pour pouvoir effectuer toutes les opérations de base sur les chaînes.
Ces opérations sont assez complexes notamment la gestion de la mémoire : l'encapsulation permet de masquer à l'utilisateur de la classe toutes les difficultés techniques.
[modifier] Différentes opérations sur la classe string
Déclaration et initialisation : string s1; string s2= "BONJOUR";
Affichage et saisie : cout<<s2; cin>>s1;
Concaténation : string s3=s2+s1;
[modifier] Exemple 1 : la classe string
Fichier main.cpp
#include <iostream> using namespace std;
#include<string>
int main()
{
string s1,s2,s3; cout<<"Tapez une chaine : ";cin>>s1; cout<<"Tapez une chaine : ";cin>>s2; s3=s1+s2; cout<<"Voici la concatenation des 2 chaines :"<<endl; cout<<s3<<endl; return 0;
}
Explications :
Dans cet exemple, nous étudions l'utilisation de la classe string.
On peut saisir le contenu d'un chaîne en utilisant cin.
On peut concaténer 2 chaînes grâce à l'opérateur +.
On peut afficher une chaîne grâce à cout.
Dans cet exemple, on demande à l'utilisateur de saisir 2 chaînes de caractères s1 et s2 et on affiche s3 la concaténation de s1 et de s2.
Exécution :
Lorsqu'on exécute ce programme, il s'affiche à l'écran :
Tapez une chaîne : AZERTY
Tapez une chaîne : QSDFGH
Voici la concaténation des deux chaînes :
AZERTYQSDFGH
[modifier] Séparateurs
Par défaut, lorsqu'on saisit une chaîne de caractères en utilisant cin, le séparateur est l'espace : cela empêche de saisir une chaîne de caractères comportant un espace.
La fonction getline(istream &,string) permet de saisir une chaîne de caractères en utilisant le passage à la ligne comme séparateur : notre chaîne de caractères peut alors comporter des espaces.
[modifier] Exemple 2 : string avec des espaces
#include <iostream> using namespace std;