Ce fichier contient ce qu'il faut pour manipuler les chaînes#include <iostream> #include <string>
le type d'une chaîne litérale est const char*using namespace std; // Une fonction permettant d'afficher une chaîne void afficher( const string& s ) { cout << '[' << s << ']' << endl; // Affichage de la chaîne entre crochets } // ----- PROGRAMME PRINCIPAL ----- int main() { const char* c_chaine = "ABCDABDCBDCDAABCCD";
Une chaîne vide, constructeur par défaut// L'initialisation des chaînes string cVide;
Construction à partir d'une c-chaîne, peut s'écrire aussi : string c1( c_chaine );afficher( cVide ); string c1 = c_chaine;
Construction d'une chaîne, en ne prenant que les 5 premiers caractèresafficher( c1 ); string c2( c_chaine, 5 );
Construction à partir du 4ième élément (en partant de 0 ) sur une longueur de 2afficher( c2 ); string c3( c_chaine, 4, 2 );
empty() renvoi true si la chaîne est vide ( size() == 0 )afficher( c3 ); // La chaîne est-elle vide ? cout << "cVide vide ? " << cVide.empty() << " c3 vide ? " << c3.empty() << endl;
size() et length() sont des synonymes pour connaite la taille d'une chaîne// Affichage de la taille d'une chaîne cout << "longueur : " << c1.size() << endl;
crée une chaîne c4 à partir de c2 et de c3// Concaténation de chaînes string c4 = c2 + c3;
remplace les 3 caractères à partir du 2ième (en partant de 0) par une chaîne de 4 caractères "EFGHI" Tout le travail de redimensionnement et de décalage est fait automatiquementafficher( c4 ); // Remplacement dans une chaîne c4.replace( 2, 3, "EFGHI" );
extrait 2 caractères à partir du 5ieme caractèreafficher( c4 ); // Extraction de chaîne string c5 = c4.substr( 4, 2 );
find recherche la chaîne c5 dans c1. size_type est le type que retourne les méthodes find.afficher( c5 ); // Recherche dans une chaine string::size_type found = c1.find( c5 );
string::npos est la valeur indiquant qu'on n'a rien trouvécout << "c5 trouvé dans c1 ? " << ( found != string::npos ) << endl;
// Recherche de la chaîne ABD dans c1 found = c1.find( "ABD" ); cout << "\"ABD\" trouvé dans c1 ? " << ( found != string::npos ) << endl; }
Voilà, rapidement ce qu'on peut faire avec les chaînes. Il y a de nombreuses autres fonctions permettant de chercher dans une chaîne et de les manipuler. Une recherche sur internet permet de connaître les fonctions disponibles.
#include <iostream> #include <string> using namespace std; // Une fonction permettant d'afficher une chaîne void afficher( const string& s ) { cout << '[' << s << ']' << endl; // Affichage de la chaîne entre crochets } // ----- PROGRAMME PRINCIPAL ----- int main() { const char* c_chaine = "ABCDABDCBDCDAABCCD"; // L'initialisation des chaînes string cVide; afficher( cVide ); string c1 = c_chaine; afficher( c1 ); string c2( c_chaine, 5 ); afficher( c2 ); string c3( c_chaine, 4, 2 ); afficher( c3 ); // La chaîne est-elle vide ? cout << "cVide vide ? " << cVide.empty() << " c3 vide ? " << c3.empty() << endl; // Affichage de la taille d'une chaîne cout << "longueur : " << c1.size() << endl; // Concaténation de chaînes string c4 = c2 + c3; afficher( c4 ); // Remplacement dans une chaîne c4.replace( 2, 3, "EFGHI" ); afficher( c4 ); // Extraction de chaîne string c5 = c4.substr( 4, 2 ); afficher( c5 ); // Recherche dans une chaine string::size_type found = c1.find( c5 ); cout << "c5 trouvé dans c1 ? " << ( found != string::npos ) << endl; // Recherche de la chaîne ABD dans c1 found = c1.find( "ABD" ); cout << "\"ABD\" trouvé dans c1 ? " << ( found != string::npos ) << endl; }
00001 #include <iostream> 00002 #include <string> 00003 using namespace std; 00004 00005 // Une fonction permettant d'afficher une chaîne 00006 void afficher( const string& s ) 00007 { 00008 cout << '[' << s << ']' << endl; 00009 // Affichage de la chaîne entre crochets 00010 } 00011 00012 // ----- PROGRAMME PRINCIPAL ----- 00013 int main() 00014 { 00015 const char* c_chaine = "ABCDABDCBDCDAABCCD"; 00016 // L'initialisation des chaînes 00017 string cVide; 00018 afficher( cVide ); 00019 00020 string c1 = c_chaine; 00021 afficher( c1 ); 00022 00023 string c2( c_chaine, 5 ); 00024 afficher( c2 ); 00025 00026 string c3( c_chaine, 4, 2 ); 00027 afficher( c3 ); 00028 00029 // La chaîne est-elle vide ? 00030 cout << "cVide vide ? " << cVide.empty() 00031 << " c3 vide ? " << c3.empty() << endl; 00032 // Affichage de la taille d'une chaîne 00033 cout << "longueur : " << c1.size() << endl; 00034 // Concaténation de chaînes 00035 string c4 = c2 + c3; 00036 afficher( c4 ); 00037 00038 // Remplacement dans une chaîne 00039 c4.replace( 2, 3, "EFGHI" ); 00040 afficher( c4 ); 00041 00042 // Extraction de chaîne 00043 string c5 = c4.substr( 4, 2 ); 00044 afficher( c5 ); 00045 00046 // Recherche dans une chaine 00047 string::size_type found = c1.find( c5 ); 00048 cout << "c5 trouvé dans c1 ? " << ( found != string::npos ) << endl; 00049 // Recherche de la chaîne ABD dans c1 00050 found = c1.find( "ABD" ); 00051 cout << "\"ABD\" trouvé dans c1 ? " << ( found != string::npos ) << endl; 00052 }