/* 06 - octobre -2024 v1.05 M.Lokbani IFT1169 - gcc14.2.0 08 - septembre -2016 v1.04 M.Lokbani IFT1169 - gcc6.1.1 20 - janvier -2014 v1.03 M.Lokbani IFT1169 - gcc4.8.1 17 - février -2013 v1.02 M.Lokbani IFT1169 - gcc4.7.0 26 - janvier -2010 v1.01 M.Lokbani IFT1169 - gcc4.3.0 12 - novembre -2005 v1.00 M.Lokbani IFT1166 - code + gcc3.4.2, +comments contact: lokbani@iro.umontreal.ca Copyright (C) 2005-2024 Universite de Montreal Departement d'informatique et de Recherche Operationnelle Mohamed Lokbani -- Tous Droits Reserves -- All Rights Reserved -- Description: Ce fichier decrit l'utilisation du type string a la place des char* En C++ la classe string permet de manipuler les chaines de caracteres sans trop se soucier de la gestion de pointeurs qui est faite par derriere. Le programme suivant presente quelques exemples d'utilisation du type string. A noter que pour pouvoir utiliser string il faut imperativement inclure le fichier d'entete " ". Bye bye les pointeurs .... */ #include #include #include using namespace std; int main() { // definition de 2 variables du type string string chaine, deuxchaines; // une chaine de chars sous la forme d'un tableau char tab[5]={'a','b','c','d','\0'}; // initialisation d'une chaine du type string chaine = "ceci"; cout << "chaine au depart: " << chaine << endl; // definition et initialisation les 2 a la fois string uneautre = " est un exemple"; cout << "une autre chaine: " << uneautre << endl; // on ajoute deux chaines, une addition classique chaine = chaine + uneautre; cout << "chaine apres ajout: " << chaine << endl; // la taille de la chaine cout << "la taille de ma chaine: " << chaine.length() << endl; // definition et initialisation a l'aide d'une chaine char* // Donc comment passer du char* vers string ... bye bye les pointeurs! string untableau(tab); cout << "untableau: " << untableau << endl; // Et si vous etes en precense de methodes qui doivent recevoir comme argument un char*! // Vous ne pouvez pas modifier les methodes pour faire passer un string. Que faire alors? // Convertir le string en char* ... les pointeurs nous hantent encore! // Donc comment passer du string vers char* .... // On utilise pour cela la methode c_str de la classe string // Attention penser a allouer l'espace memoire ... string encore("ceci alors"); char* test = new char[encore.length()+1]; strcpy(test,encore.c_str()); cout << "test: " << test << endl; // si vous voulez travailler sur la meme chaine: // ici on ne fait que recopier l'adresse du pointeur. char* second_test = (char *) encore.c_str(); second_test[0]='Z'; // On remplace le premier caractere c par le caractere Z cout << encore << " : " << second_test << endl; return 0; } /* >string911 chaine au depart: ceci une autre chaine: est un exemple chaine apres ajout: ceci est un exemple la taille de ma chaine: 19 untableau: abcd test: ceci alors Zeci alors : Zeci alors >Exit code: 0 */