Page suivantePage précédenteTable des matières

3. Utilisation de la classe String

Pour utiliser la classe String, vous devez d'abord vous reporter au programme d'exemple "example_String.cpp" donné en Annexe A et à la classe String qui se trouve en Annexe B.

La classe String est un remplacement complet des types char et char~*. Vous pouvez l'utiliser exactement comme vous utilisez char et avoir encore plus de fonctionnalités. Vous devez faire l'édition des liens avec la bibliothèque 'libString.a' que vous pouvez obtenir en utilisant le Makefile fourni en Annexe H et copier la bibliothèque dans le répertoire /usr/lib ou /lib (NdT: sous Unix) où les bibliothèques se trouvent. Pour utiliser 'libString.a', compilez vos programmes ainsi


g++ exemple.cpp -lString

Regardez l'exemple de code donné ci-dessous


 String aa;
 aa = " Le siège de l'ONU est à New-York ";
 // Vous pouvez utiliser aa.val() comme une variable 'char~*' dans vos
 // programmes
 for (unsigned long tmpii = 0; tmpii < aa.length(); tmpii++)
 {
 //fprintf(stdout, "aa.val()[%ld]=%c ", tmpii, aa.val()[tmpii]);
 fprintf(stdout, "aa[%ld]=%c ", tmpii, aa[tmpii]);
 }
 // Utiliser des pointeurs sur le 'char~*" val
 for (char~*tmpcc = aa.val(); *tmpcc != 0; tmpcc++)
 {
 fprintf(stdout, "aa.val()=%c ", *tmpcc);
 }

Un programme d'exemple complet "example_String.cpp" utilisant la classe String est donné en Annexe A et la classe String est donnée en Annexe B.

3.1 Opérateurs

La classe String fournit les opérateurs suivant :

Exemple d'utilisation des opérateurs :
 String aa;
 String bb("Linus Torvalds")
 aa = "mettez une chaîne ici";  // affectation
 aa += "ajoutez-en un peu plus"; // rajout
 aa = "Mon nom est" + " Alavoor Vasudevan "; // concaténation de String
 if (bb == "Linus Torvalds")  // égalité booléenne
 cout << "bb est égale à 'Linus Torvalds' " << endl;
 if (bb != "Alan Cox")   // non égalité booléenne
 cout << "bb n'est pas égal à 'Alan Cox'" << endl;

3.2 Fonctions

Les fonctions fournies par la classe String ont les même noms que celles de la classe String de Java. Les noms des fonctions et leur comportement sont exactement les mêmes que ceux de la classe String de Java ! La classe StringBuffer est aussi fournie. Cela facilitera le portage de code entre Java et C++ (vous pouvez faire du copier/coller et avoir seulement à modifier très légèrement votre code).

Le code du corps d'un fonction Java peut être copié dans le corps d'une fonction membre C++ et avec très peu de changements être compilé en C++. Un autre avantage est que les développeurs codant en Java et en C++ n'ont pas besoin de connaître deux syntaxes ou deux noms de fonctions différents.

Reportez vous en annexe B String.h pour avoir des détails sur les noms des fonctions de la classe String.

Par exemple pour convertir un entier en chaîne, faire :


 String  aa;
 aa = 34;  // L'opérateur '=' convertira l'entier en chaîne
 cout << "La valeur de aa est : " << aa.val() << endl;
 aa = 234.878;  // L'opérateur '=' convertira le réel en chaîne
 cout << "La valeur de aa est : " << aa.val() << endl;
 aa = 34 + 234.878;
 cout << "La valeur de aa est : " << aa.val() << endl;
 // aa doit contenir '268.878' (nombre en notation anglaise)
 // transtypage
 aa = (String) 34 + " Célèbre hacker Linus Torvalds " + 234.878;
 cout << "La valeur de aa est : " << aa.val() << endl;
 // aa doit contenir '34 Célèbre hacker Linus Torvalds 234.878'


Page suivantePage précédenteTable des matières