/* Fichier string0.cpp Autre exemple a venir Par LVN pour IFT 1166 */ #include // entree-sortie standard #include // formatage (presentation) #include // chaine de caracteres (details : plus tard) #include #include using namespace std; // librairie standard void continuer() { cout << endl << endl << "Appuyez sur une lettre suivie de Entree " ; char lettre; cin >> lettre ; cout << endl << endl; } void demoComparaisons() { cout << "\nQuelques comparaisons avec string :\n\n"; string ch1 = "Bonjour", ch2 = "Bonsoir"; cout << "ch1[3] vaut " << ch1[3] << " ordre : " << (int) ch1[3] << endl; cout << "ch2[3] vaut " << ch2[3] << " ordre : " << (int) ch2[3] << endl; cout << "ch1 == ch2 vaut " << (ch1 == ch2) << endl; cout << "ch1 < ch2 vaut " << (ch1 < ch2) << endl; cout << "ch1.substr(0,3) == ch2.substr(0,3) vaut " << (ch1.substr(0,3) == ch2.substr(0,3)) << endl; } int main() { string souhait = "Bonsoir!" ; cout << "Le marqueur pour indices: 012345678901234567890123456789\n" ; cout << "La chaine telle quelle : " << souhait << endl ; // la longueur (le nombre de caracteres) : cout << endl << "La longueur : souhait.length() : " << souhait.length() << " puis souhait.size() : " << souhait.size() << endl ; // acces a un caractere : cout << "Le caractere a l'indice 2 : souhait[2] " << souhait[2] << endl ; cout << "Le caractere a l'indice 2 : souhait.at(2) " << souhait.at(2) << endl ; string Maj = "", Min = ""; // vide au debut for (int i = 0; i < souhait.length() ; i++) { Maj += toupper(souhait[i]) ; // += => la concatenation Min += tolower(souhait[i]) ; // toupper : en majuscule, tolower : en miniscule } cout << "En majuscules : " << Maj << " puis en minuscules : " << Min << endl << endl; // extraire une sous-chaine string ch = souhait.substr(3, 2) ; // a partir de l'indice 3, on prend 2 caracteres cout << "souhait.substr(3, 2) vaut " << ch << endl ; ch = souhait.substr(3); // a partir de l'indice 3 jusqu'a la fin de la chaine cout << "souhait.substr(3) vaut " << ch << endl ; // chercher un caractere dans une chaine : // premier indice pour la lettre o (chercher au debut) : cout << "souhait.find('o') vaut " << souhait.find('o') << endl ; // recherche de la lettre o a partir de l'indice 3 cout << "souhait.find('o',3) vaut " << souhait.find('o', 3) << endl ; // cas introuvable : cout << "souhait.find('z') vaut " << souhait.find('z') << endl ; cout << "puis string::npos vaut " << string::npos << endl; // chercher une sous-chaine dans une chaine cout << "souhait.find(\"on\") vaut " << souhait.find("on") << endl ; cout << "souhait.find(\"jour\") vaut " << souhait.find("jour") << endl << endl ; // conversion de la chaine nunmerique a une valeur numerique: cas de C char ch_C[] = "1234" ; int n = atoi(ch_C) ; cout << "ch_C vaut " << ch_C << " et en valeur numerique : " << n << endl; // conversion de la chaine nuneirique a une valeur numerique: cas de C char ch2_C[] = "1.74" ; float taille = atof(ch2_C); cout << "ch2_C vaut " << ch2_C << " et en valeur numerique : " << taille << endl; // conversion de la chaine nunmerique a une valeur numerique: cas de C++ string str1 = "32"; int age = atoi(str1.c_str()); cout << "str1 vaut " << str1 << " et age vaut " << age << endl; string str2 = "72.4"; float poids= atof(str2.c_str()); cout << "str2 vaut " << str2 << " et poids vaut " << poids << endl << endl; demoComparaisons(); continuer(); return 0; } /* Ex?cution: Le marqueur pour indices: 012345678901234567890123456789 La cha?ne telle quelle : Bonsoir! La longueur : souhait.length() : 8 puis souhait.size() : 8 Le caractere a l'indice 2 : souhait[2] n Le caractere a l'indice 2 : souhait.at(2) n En majuscules : BONSOIR! puis en minuscules : bonsoir! souhait.substr(3, 2) vaut so souhait.substr(3) vaut soir! souhait.find('o') vaut 1 souhait.find('o',3) vaut 4 souhait.find('z') vaut 4294967295 puis string::npos vaut 4294967295 souhait.find("on") vaut 1 souhait.find("jour") vaut 4294967295 ch_C vaut 1234 et en valeur numerique : 1234 ch2_C vaut 1.74 et en valeur numerique : 1.74 str1 vaut 32 et age vaut 32 str2 vaut 72.4 et poids vaut 72.4 Quelques comparaisons avec string : ch1[3] vaut j ordre : 106 ch2[3] vaut s ordre : 115 ch1 == ch2 vaut 0 ch1 < ch2 vaut 1 ch1.substr(0,3) == ch2.substr(0,3) vaut 1 Appuyez sur une lettre suivie de Entree */