Page suivantePage précédenteTable des matières

14. Annexe A example_String.cpp

Vous pouvez récupérer tous les programmes en un seul tar.gz sur Telecharger String . Pour obtenir ce fichier, dans un butineur web, sauvez ce fichier en type 'texte'.


//
// Auteur : Al Dev
// Utilisez la classe string ou cette classe
//
// Pour éviter les fuites de mémoire, une classe caractère qui gere les
// variables caractère.
// Préférez toujours l'utilisation de la classe string à char[] et char *.
//
// Pour compiler et tester ce programme
// (en supposant que libString.a est dans le repertoire courant)
//              g++ example_String.cpp -L. -lString
#include <stdlib.h>  // pour putenv
#include "String.h"
//#include <string>  // ceci se trouve dans /usr/include/g++-2/string
//#include <cstring> // ceci se trouve dans /usr/include/g++-2/cstring et inclut /usr/include/strings.h
//
void java_string();
void java_string_buffer();
void java_string_to_numbers();
void java_string_tokenizer();
void java_string_reader();
void java_string_writer();
/////////////////////////////////////////////////
// Un exemple de programme pour présenter String
// Note : dans cet exemple, je n'ai pas du tout
// utilisé les fonctions de manipulation de la
// memoire comme new, delete, malloc, strdup.
// La classe String gère cela automatiquement !
/////////////////////////////////////////////////
int main(int argc, char **argv)
{
 //char p_name[1024];
 //sprintf(p_name, "PROGRAM_NAME=%s", argv[0]);
 //putenv(p_name);
 //print_total_memsize(); // au debut
 java_string();
 java_string_buffer();
 java_string_to_numbers();
 java_string_tokenizer();
 java_string_reader();
 java_string_writer();
 //print_total_memsize(); // à la fin
}
// Exemple de démonstration de l'imitation de la classe
// Java String
void java_string()
{
 String aa, bb, egg;
 char  tmpaa[100];
 //bb.str_cpy("  bbSTRing  ");
 bb = "   bbSTRing   ";
 // Test de l'opérateur + à droite
 // aa + " droite "; // Aucun affichage ici !
 // Vous devez l'utiliser directement avec fprintf comme suit
 fprintf(stdout, "1) aa.val() is :%sEOF\n", (aa + " my rhs " ).val());
 // Test de l'opérateur =
 aa = " gauche " ;
 fprintf(stdout, "2) With operator= aa.val() is :%sEOF\n", aa.val());
 // Test de l'opérateur + à gauche
 // " gauche " + aa; // Aucun affichage ici !
 // Vous devez l'utiliser directement avec fprintf comme suit
 fprintf(stdout, "3) With lsh operator+, aa.val() is :%sEOF\n", (" my lhs " + aa ).val());
 // ***************** Fonctions à la Java ********************
 aa = "Some Value 2345";
 fprintf(stdout, "4) aa.charAt() is :%c %sEOF\n", aa.charAt(3), aa.val());
 aa = "Some Value 2345";
 strcpy(tmpaa, "tmpaa value");
 aa.getChars(3, 8, tmpaa, 2);
 fprintf(stdout, "5) aa.getChars() is : %s %sEOF\n", tmpaa, aa.val());
 aa = "Some Value 2345";
 fprintf(stdout, "6) aa.toCharArray() is : %sEOF\n", aa.toCharArray());
 aa = "Some2345";
 if (aa.equals("Some2345"))
 fprintf(stdout, "7) aa.equals() is true : %sEOF\n", aa.val());
 else
 fprintf(stdout, "7) aa.equals() is false : %sEOF\n", aa.val());
 aa = "testinglettercase";
 egg = "TestingLetterCase";
 if (aa.equalsIgnoreCase(egg))
 fprintf(stdout, "8) egg equals aa (case insensitive) aa.val is :%sEOF\n", aa.val());
 else
 fprintf(stdout, "8) egg not equals aa (case insensitive) aa.val is :%sEOF\n", aa.val());
 aa = "kkktestinglettercase";
 egg = "abtestingLetterCase";
 if (aa.regionMatches(true, 3, egg, 2, 7))
 fprintf(stdout, "9) regionMatches is true aa.val is :%sEOF\n", aa.val());
 else
 fprintf(stdout, "9) regionMatches is false aa.val is :%sEOF\n", aa.val());
 //aa.str_cpy(bb.val());
 aa = bb + "Some Value 2345";
 egg = aa.toUpperCase();
 fprintf(stdout, "10) egg.val is :%sEOF\n", egg.val());
 aa = bb + "Some Value 2345";
 egg = aa.toLowerCase();
 fprintf(stdout, "11) egg.val is :%sEOF\n", egg.val());
 aa = "Some Value 2345";
 egg = "Some";
 if (aa.startsWith("Some"))
 //if (aa.startsWith(egg))
 fprintf(stdout, "12) aa.startsWith() is true :%sEOF\n", aa.val());
 else
 fprintf(stdout, "12) aa.startsWith() is false :%sEOF\n", aa.val());
 aa = "Some Value 2345";
 egg = " 2345";
 if (aa.endsWith(" 2345"))
 //if (aa.endsWith(egg))
 fprintf(stdout, "13) aa.endsWith() is true :%sEOF\n", aa.val());
 else
 fprintf(stdout, "13) aa.endsWith() is false :%sEOF\n", aa.val());
 aa = "bbb Some Value 2345";
 egg = "caabc";
 if (aa.compareTo(egg) == 0)
 fprintf(stdout, "14) aa.compareTo() is zero :%sEOF\n", aa.val());
 else
 if (aa.compareTo(egg)> 0)
 fprintf(stdout, "14) aa.compareTo() is greater :%sEOF\n", aa.val());
 else
 if (aa.compareTo(egg) < 0)
 fprintf(stdout, "14) aa.compareTo() is less than :%sEOF\n", aa.val());
 aa = "bbb Some Value 2345";
 strcpy(tmpaa, "aabbb Some Value 2345");
 if (aa.compareTo(tmpaa) == 0)
 fprintf(stdout, "15) aa.compareTo() is zero :%sEOF\n", aa.val());
 else
 if (aa.compareTo(tmpaa)> 0)
 fprintf(stdout, "15) aa.compareTo() is greater :%sEOF\n", aa.val());
 else
 if (aa.compareTo(tmpaa) < 0)
 fprintf(stdout, "15) aa.compareTo() is less than :%sEOF\n", aa.val());
 aa = "bbb Some Value 2345";
 //egg = "bbb Some Value 2345";
 egg = "CCaabc";  // change values to caabc, aabc
 if (aa.compareToIgnoreCase(egg) == 0)
 fprintf(stdout, "16) aa.compareToIgnoreCase() is zero :%sEOF\n", aa.val());
 else
 if (aa.compareToIgnoreCase(egg)> 0)
 fprintf(stdout, "16) aa.compareToIgnoreCase() is greater :%sEOF\n", aa.val());
 else
 if (aa.compareToIgnoreCase(egg) < 0)
 fprintf(stdout, "16) aa.compareToIgnoreCase() is less than :%sEOF\n", aa.val());
 aa = "bbb Some Value 2345";
 //strcpy(tmpaa, "bbb Some Value 2345");
 strcpy(tmpaa, "CAABbb Some Value 2345"); // change value to caabb, aab
 if (aa.compareToIgnoreCase(tmpaa) == 0)
 fprintf(stdout, "17) aa.compareToIgnoreCase() is zero :%sEOF\n", aa.val());
 else
 if (aa.compareToIgnoreCase(tmpaa)> 0)
 fprintf(stdout, "17) aa.compareToIgnoreCase() is greater :%sEOF\n", aa.val());
 else
 if (aa.compareToIgnoreCase(tmpaa) < 0)
 fprintf(stdout, "17) aa.compareToIgnoreCase() is less than :%sEOF\n", aa.val());
 aa = "bbb Some Value 2345";
 strcpy(tmpaa, "Some");
 egg = "Value";
 fprintf(stdout, "18) aa.indexOf('S') %d :%sEOF\n", aa.indexOf('S'),  aa.val());
 fprintf(stdout, "18) aa.indexOf(tmpaa) %d :%sEOF\n", aa.indexOf(tmpaa),  aa.val());
 fprintf(stdout, "18) aa.indexOf(egg) %d :%sEOF\n", aa.indexOf(egg),  aa.val());
 aa = "bbb Some Value Some 2345";
 strcpy(tmpaa, "Some");
 egg = "Some";
 fprintf(stdout, "19) aa.lastIndexOf('S') %d :%sEOF\n", aa.lastIndexOf('S'),  aa.val());
 fprintf(stdout, "19) aa.lastIndexOf(tmpaa) %d :%sEOF\n", aa.lastIndexOf(tmpaa),  aa.val());
 fprintf(stdout, "19) aa.lastIndexOf(egg) %d :%sEOF\n", aa.lastIndexOf(egg),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "20) aa.substring(5) %s :%sEOF\n",
 aa.substring(5).val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 strcpy(tmpaa, "Some");
 egg = "Some";
 fprintf(stdout, "20) aa.replace('S', 'V') %s :%sEOF\n",
 aa.replace('S', 'V').val(),  aa.val());
 fprintf(stdout, "20) aa.replace(Som, Vzz) %s :%sEOF\n",
 aa.replace("Som", "Vzz").val(),  aa.val());
 aa = "   bbb Some Value Some 2345   ";
 fprintf(stdout, "21) aa.trim() :%sEOF val() :%sEOF\n",
 aa.trim().val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "21) aa.concat() %s val :%sEOF\n",
 aa.concat("add one").val(),  aa.val());
 //aa = "bbb Some Value Some 2345";
 //fprintf(stdout, "21) aa.append() %s val :%sEOF\n",
 //              aa.append("add append").val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 egg = "jjjj";
 fprintf(stdout, "21) aa.insert(5, egg) %s val :%sEOF\n",
 aa.insert(5, egg).val(),  aa.val());
 fprintf(stdout, "21) aa.insert(5, ch) %s val :%sEOF\n",
 aa.insert(5, 'M').val(),  aa.val());
 aa = "12345678";
 fprintf(stdout, "46) aa.reverse()=%s aa.val is :%sEOF\n", aa.reverse().val(), aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "21) aa.deleteCharAt(4) %s val :%sEOF\n",
 aa.deleteCharAt(4).val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "22) aa.deleteStr(3,5) %s val :%sEOF\n",
 aa.deleteStr(3,5).val(),  aa.val());
 // ***************** Fin des fonctions à la Java ********************
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "23) aa.str_tr(bomekk, BOME) %s val :%sEOF\n",
 aa.tr("bomekk", "BOME").val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 aa = "$1,934 100%.234";
 fprintf(stdout, "24) aa.compress() %s val :%sEOF\n",
 aa.compress("$,%").val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "25) aa.xrange('a', 'j') %s val :%sEOF\n",
 aa.xrange('a', 'j').val(),  aa.val());
 fprintf(stdout, "25) aa.xrange('1', '8') %s val :%sEOF\n",
 aa.xrange('1', '8').val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "26) aa.center(15) %s val :%sEOF\n",
 aa.center(15).val(),  aa.val());
 fprintf(stdout, "26) aa.center(15, '*') %s val :%sEOF\n",
 aa.center(15, '*').val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "27) aa.space(3) %s val :%sEOF\n",
 aa.space(3).val(),  aa.val());
 aa = "      Some Value Some 2345";
 fprintf(stdout, "28) aa.left() %s val :%sEOF\n",
 aa.left().val(),  aa.val());
 fprintf(stdout, "28) aa.left(18) %s val :%sEOF\n",
 aa.left(18).val(),  aa.val());
 aa = "  2345    ";
 fprintf(stdout, "29) aa.right():%s val :%sEOF\n",
 aa.right().val(),  aa.val());
 fprintf(stdout, "29) aa.right(5):%s val :%sEOF\n",
 aa.right(5).val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "30) aa.overlay(12345678, 4, 10, *):%s val :%sEOF\n",
 aa.overlay("12345678", 4, 10, '*').val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "31) aa.at(Som) %s :%sEOF\n",
 aa.at("Som").val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "32) aa.before(Som) %s :%sEOF\n",
 aa.before("Skkkom").val(),  aa.val());
 aa = "bbb Some Value Some 2345";
 fprintf(stdout, "33) aa.after(Som) %s :%sEOF\n",
 aa.after("Som").val(),  aa.val());
 aa = "   bb some value   ";
 aa.ltrim(true);
 fprintf(stdout, "34) aa.val is :%sEOF\n", aa.val());
 aa = "   bb some value   ";
 aa.rtrim(true);
 fprintf(stdout, "35) aa.val() is :%sEOF\n", aa.val());
 aa = "   bb some value   ";
 aa.trim(true);
 fprintf(stdout, "36) aa.val() is :%sEOF\n", aa.val());
 aa = bb;
 aa = aa + " testing newlines \n\n\n\n";
 aa.chopall();
 fprintf(stdout, "37) aa.val() is :%sEOF\n", aa.val());
 aa = bb;
 aa = aa + " rhs ";
 fprintf(stdout, "38) aa.val() is :%sEOF\n", aa.val());
 aa = bb;
 aa = " lhs " + aa;
 fprintf(stdout, "39) aa.val() is :%sEOF\n", aa.val());
 // Sample addition of numbers
 //aa = (String) 9989 + "kkk" + 33 ;
 aa = 9999;
 fprintf(stdout, "40) aa.val() is :%sEOF\n", aa.val());
 aa = bb;
 aa = " lhs " + aa + " rhs " + " 9989 " + " 33 ";
 fprintf(stdout, "41) aa.val() is :%sEOF\n", aa.val());
 aa = " AA value ";
 aa = bb + "alkja " + " 99djd " ;
 fprintf(stdout, "42) aa.val() is :%sEOF\n", aa.val());
 aa = " AA value ";
 aa = (String) "alkja " + " 99djd " ;
 fprintf(stdout, "43) aa.val() is :%sEOF\n", aa.val());
 aa = " AA value ";
 aa += (String) " al dev test kkk... " + " al2 slkj" + " al3333 ";
 fprintf(stdout, "44) aa.val() is :%sEOF\n", aa.val());
 aa = " AA value ";
 aa = aa + " add aa " + aa + aa + aa + " 1111 " + " 2222 " + aa + aa + aa + " 3333 ";
 fprintf(stdout, "45) aa.val() is :%sEOF\n", aa.val());
 aa = "12345678";
 aa.reverse(true);
 fprintf(stdout, "46) aa.val() is :%sEOF\n", aa.val());
 aa = " AA value ";
 aa = aa + " add aa " + aa + 1111 +" "+ 2222 + " " + 3.344 + aa;
 fprintf(stdout, "47) aa.val() is :%sEOF\n", aa.val());
 aa.roundd(123456.0123456789012345, 13);
 fprintf(stdout, "48) double aa.val() is :%sEOF\n", aa.val());
 aa.roundf(123456.0123456789, 13);
 fprintf(stdout, "49) float aa.val() is :%sEOF\n", aa.val());
 // Test d'égalite
 aa = " AA value ";
 String cc(" AA value ");
 if (aa == cc)
 fprintf(stdout, "50)aa=%s and cc=%s are equal!!\n", aa.val(), cc.val());
 else
 fprintf(stdout, "51)aa=%s and cc=%s are NOT equal!!\n", aa.val(), cc.val());
 cc = "CC";
 if (aa == cc)
 fprintf(stdout, "52)aa=%s and cc=%s are equal!!\n", aa.val(), cc.val());
 else
 fprintf(stdout, "53)aa=%s and cc=%s are NOT equal!!\n", aa.val(), cc.val());
 if (aa == " AA value ")
 fprintf(stdout, "54)aa=%s and string are equal!!\n", aa.val());
 else
 fprintf(stdout, "55)aa=%s and string are NOT equal!!\n", aa.val());
 if (aa == " AA valuexxx ")
 fprintf(stdout, "56)aa=%s and string are equal!!\n", aa.val());
 else
 fprintf(stdout, "57)aa=%s and string are NOT equal!!\n", aa.val());
 aa = " AA bb value 12345678 ";
 fprintf(stdout, "58) aa.length() is :%ldEOF\n", aa.length());
 aa = " AA bb value 12345678 ";
 fprintf(stdout, "59) aa.repeat(BA, 4).val=%s aa.val() is :%sEOF\n",
 aa.repeat("BA", 4).val(), aa.val());
 aa = "";
 aa = "aa";
 if (aa.isNull())
 fprintf(stdout, "60) aa.isNull() result=true%sEOF\n", aa.val());
 else
 fprintf(stdout, "60) aa.isNull() result=false%sEOF\n", aa.val());
 aa = " some value aa";
 aa.clear();
 fprintf(stdout, "61) aa.clear() %sEOF\n", aa.val());
 aa = "  abcd efg  hijk  lmno     ";
 fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
 aa.token().val(),  aa.val());
 fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
 aa.token().val(),  aa.val());
 fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
 aa.token().val(),  aa.val());
 fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
 aa.token().val(),  aa.val());
 fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
 aa.token().val(),  aa.val());
 aa = " 2345 ";
 if (aa.isInteger()) // is true
 fprintf(stdout, "63) aa is a integer val :%sEOF\n", aa.val());
 else
 fprintf(stdout, "63) aa is NOT a integer val :%sEOF\n", aa.val());
 aa = " 23.045  ";
 if (aa.isNumeric()) // is true
 fprintf(stdout, "64) aa is a numeric val :%sEOF\n", aa.val());
 else
 fprintf(stdout, "64) aa is NOT a numeric val :%sEOF\n", aa.val());
 aa = " 23045  ";
 fprintf(stdout, "65) aa.toInteger()=%d val :%sEOF\n",
 aa.toInteger(), aa.val());
 aa = " 230.45  ";
 fprintf(stdout, "66) aa.toDouble()=%f val :%sEOF\n",
 aa.toDouble(), aa.val());
 aa = " testing abcdefg";
 aa.chop();
 fprintf(stdout, "68) aa.chop() aa.val is :%sEOF\n", aa.val());
 aa = " str1 str2 string3 abcdefg joe john hardy  ";
 String *strlist;
 int strcount = 0;
 strlist = aa.explode(strcount);
 for (int ii = 0; ii <= strcount; ii++)
 {
 fprintf(stdout, "69) strlist[%d] is :%sEOF\n",
 ii, strlist[ii].val());
 }
 aa = " some aa ";
 cout << "\n\nPlease enter a line and hit return key : ";
 aa.getline();
 fprintf(stdout, "70) aa.getline() is :%sEOF\n", aa.val());
 aa = " some aa ";
 cout << "71) Testing << operator aa is : " << aa << endl;
 aa = " some aa ";
 cout << "\n\n73) Testing>> operator. Enter value for aa : ";
 cin>> aa;
 cout << "73) Testing>> operator aa is : " << aa << endl;
 // Vous pouvez utiliser aa.val() comme une variable 'char *' dans vos programmes !
 aa = " str1 str2 string3 abcdefg joe john hardy  ";
 fprintf(stdout, "\n\n74) Test case using aa.val() as 'char []' variable... ");
 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]);
 }
 fprintf(stdout, "\n");
 // Utilisation de pointeurs sur 'char *' ...
 fprintf(stdout, "\n\n75) Test case using aa.val() as 'char *' pointers... ");
 aa = " str1 str2 string3 abcdefg joe john hardy  ";
 for (char *tmpcc = aa.val(); *tmpcc != 0; tmpcc++)
 {
 fprintf(stdout, "aa.val()=%c ", *tmpcc);
 }
 fprintf(stdout, "\n");
}
// Exemple de démonstration pour la classe StringBuffer de Java
void java_string_buffer()
{
 String str1 = "ABCD EFGHI";
 cout << "\nAssigned value to str1 " << endl;
 StringBuffer aa;
 StringBuffer bb(30);
 StringBuffer cc(str1);
 cout << "\n StringBuffer aa.length() : " << aa.length() << endl;
 cout << "\n StringBuffer aa.capacity() : " << aa.capacity() << endl;
 cout << "\n StringBuffer aa.ensureCapacity(28) : " << endl;
 aa.ensureCapacity(28);
 cout << "\n StringBuffer aa.setLength(38) : " << endl;
 aa.setLength(38);
 // En Java, vous utilisez new, en C++ supprimez new
 // StringBuffer dd = new StringBuffer("some value for string buffer");
 StringBuffer dd = StringBuffer("some value for string buffer");
 cout << "\n StringBuffer dd.charAt(3) : " << dd.charAt(3) << endl;
 dd.setCharAt(3, 'K');
 cout << "\n StringBuffer setCharAt(3) : " << dd.charAt(3) << endl;
 char ee[100];
 memset(ee, 0, 100);
 strcpy(ee, "111111111111111111111111111111111111");
 dd.getChars(2, 12, ee, 3);
 cout << "\n StringBuffer getChars(2, 12, ee, 3) : " << ee << endl;
 dd.append(str1);
 cout << "\n StringBuffer append() : " << dd << endl;
 dd.append("12345678");
 cout << "\n StringBuffer append() : " << dd << endl;
 dd.append(9);
 cout << "\n StringBuffer append() : " << dd << endl;
 dd.append(7.876);
 cout << "\n StringBuffer append() : " << dd << endl;
 dd.setLength(1);
 dd.append(" some value for dd");
 dd.insert(4, str1);
 cout << "\n StringBuffer insert() : " << dd << endl;
 dd.reverse();
 cout << "\n StringBuffer reverse() : " << dd << endl;
 dd.setLength(1);
 dd.append(" some value for dd");
 dd.deleteStr(4, 9);  // Java's delete()
 cout << "\n StringBuffer deleteStr(4,9) : " << dd << endl;
 dd.setLength(1);
 dd.append(" some value for dd");
 dd.deleteCharAt(6);
 cout << "\n StringBuffer deleteCharAt() : " << dd << endl;
 dd.setLength(1);
 dd.append(" some value for dd");
 dd.replace(3, 8, str1);
 cout << "\n StringBuffer replace() : " << dd << endl;
 dd.setLength(1);
 dd.append(" some value for dd. A quick brown fox.");
 dd.substring(8);
 cout << "\n StringBuffer substring(8) : " << dd << endl;
 dd.setLength(1);
 dd.append(" some value for dd akjla akja kjk");
 dd.substring(8, 14);
 cout << "\n StringBuffer substring(8) : " << dd << endl;
}
// Exemple de démonstration pour les fonctions de Java parseInt,
// parseLong, floatValue et doubleValue
void java_string_to_numbers()
{
 String str1;
 int ii, jj = 40, mm = 24;
 long kk;
 str1 = "342";
 cout << "\n string str1 is : " << str1.val() << endl;
 ii = Integer.parseInt(str1);
 cout << "\n ii is : " << ii << endl;
 ii = ii + jj;  // add some value
 cout << "\n ii after adding " << jj << " is : " << ii << endl;
 str1 = "9876543210";
 cout << "\n string str1 is : " << str1.val() << endl;
 kk = Long.parseLong(str1);
 cout << "\n kk is : " << kk << endl;
 kk = kk + mm;  // add some value
 cout << "\n kk after adding " << mm << " is : " << kk << endl;
 str1 = "3.1487389876";
 cout << "\n string str1 is : " << str1.val() << endl;
 // Note : C++ n'accepte pas ceci --> Float myflt = Float.valueOf(str1);
 // Remplacement par ...
 Float myflt(str1); // Float myflt = Float.valueOf(str1);
 float nn = myflt.floatValue();
 //cout << "\n float nn is : " << nn << endl;
 fprintf(stdout, "\n double nn is : %8.20f \n", nn);
 nn = nn + mm;  // add some value
 //cout << "\n kk after adding " << mm << " is : " << nn << endl;
 fprintf(stdout, "\n kk after adding %d is : %8.20f \n", mm, nn);
 str1 = "3.1487389876";
 cout << "\n string str1 is : " << str1.val() << endl;
 // Note : C++ n'accept pas ceci --> Double mydbl = Double.valueOf(str1);
 // Remplacement par ...
 Double mydbl(str1); // Double mydbl = Double.valueOf(str1);
 double pp = mydbl.doubleValue();
 //cout << "\n double pp is : " << pp << endl;
 fprintf(stdout, "\n double pp is : %8.20f \n", pp);
 pp = pp + mm;  // add some value
 //cout << "\n kk after adding " << mm << " is : " << pp << endl;
 fprintf(stdout, "\n kk after adding %d is : %8.20f \n", mm, pp);
}
// Exemple de démonstration pour la classe Java StringTokenizer
void java_string_tokenizer()
{
 String results;
 // met une expression arithmetique dans une String et cree
 // un analyseur/tokenizer pour la string
 String mathExpr = "4*3+2/4";
 //StringTokenizer st1 = new StringTokenizer(mathExpr, "*+-", true);
 StringTokenizer st1(mathExpr, "*+-", true);
 // tant qu'il reste des tokens, les afficher
 results += "Tokens of mathExpr:\r\n";
 while (st1.hasMoreTokens())
 {
 results = results + st1.nextToken() + "\r\n";
 }
 cout << "The results : " << results << endl;
 // crée une string avec des champs délimités avec des virgules
 // et crée un analyseur/tokenizer pour elle
 String commas = "field1,field2,field3,and field4";
 //StringTokenizer st2 = new StringTokenizer(commas, ",", false);
 StringTokenizer st2(commas, ",", true);
 // tant qu'il reste des tokens, les afficher
 results = "";
 results += "Comma-delimited tokens:\r\n";
 while (st2.hasMoreTokens())
 {
 results = results + st2.nextToken() + "\r\n";
 }
 cout << "The results : " << results << endl;
 // crée une string avec des champs délimités avec des virgules
 // et crée un analyseur/tokenizer pour elle
 String colon = "f1,f2,f3,f4,f5,f6,f7,f8:f9:k1:k2:k3:k4:k5:k6:k7:k8:k9";
 //StringTokenizer st3 = new StringTokenizer(colon, ",", false);
 StringTokenizer st3(colon, ",", true);
 // tant qu'il reste des tokens, les afficher
 results = "";
 results += "Comma-delimited tokens:\r\n";
 for (int ii = 0; st3.hasMoreTokens(); ii++)
 {
 if (ii == 3)
 results = results + st3.nextToken(":") + "\r\n";
 else
 results = results + st3.nextToken() + "\r\n";
 }
 cout << "The results : " << results << endl;
}
// Exemple de démonstration de la classe Java StringReader
void java_string_reader()
{
 String str1;
 str1 = "some test string abcdefgh ijklk m n op  EM";
 StringReader reader(str1);
 char curChar;
 while ((curChar = reader.read()) != -1)
 {
 cout << "curChar : " << curChar << endl;
 }
}
// Exemple de démonstration de la classe Java StringWriter
void java_string_writer()
{
 String str1;
 str1 = "some str";
 StringWriter writer;
 writer.write("Hello ");
 writer.write("xxxWorldxxx", 3, 8);
 str1 = writer.toString();
 cout << "str1 using toString() : " << str1 << endl;
 writer.close();
 str1 = writer.toString();
 cout << "str1 after doing close() : " << str1 << endl;
 str1 = "some str";
 writer.write(" Yet another Hello ");
 writer.write("xxxxxWorld-widexxx", 5, 15);
 str1 = writer.getBuffer();
 cout << "str1 using the getBuffer() : " << str1 << endl;
}


Page suivantePage précédenteTable des matières