Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1558 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] string.append(1, *iter); ne marche pas...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] string.append(1, *iter); ne marche pas...

n°654102
antsite
Je me souviens
Posté le 25-02-2004 à 07:44:16  profilanswer
 

Salut,
je voudrais savoir pourquoi la boucle avec l'itérateur ne marche pas (compile mais plante), alors que la boucle avec un for plus classique fonctionne bien...
 

Code :
  1. Constructeur(string sIp)
  2.     {
  3.         string::iterator iter;
  4.         string parts[4];
  5.         int n = 0;
  6.        
  7.         for(sIp.begin() ; iter!=sIp.end() ; iter++)
  8.         {
  9.             if(*iter == '.')
  10.                 n++;
  11.             else
  12.                 parts[n].append(1, *iter); //compile mais plante
  13.         }
  14. //-------------------------------------------
  15.         for(int i=0;i<sIp.length();i++)
  16.         {
  17.             if(sIp[i] == '.')
  18.                 n++;
  19.             else
  20.                 parts[n].append(1, sIp[i]); //c'est bon, ça marche
  21.         }
  22.         cout << parts[0] << "\n";
  23.         cout << parts[1] << "\n";
  24.         cout << parts[2] << "\n";
  25.         cout << parts[3] << "\n";
  26.     }


 
merci
   ANT

mood
Publicité
Posté le 25-02-2004 à 07:44:16  profilanswer
 

n°654106
nraynaud
lol
Posté le 25-02-2004 à 07:59:39  profilanswer
 

juste une question naïve, il est initialisé où ton "iter" (tu itère sur quelle chaine) ? je vois pas.
 
Tu es sur de ne pas avoir ne serais-ce que des warnings (au hasard, un warning parlant de variable non initialisée, à la ligne où ça plante) à la compilation ? que C++ compile des conneries sans broncher, je suis d'accord, mais il ne faut pas exagérer non plus, il faut mettre un peu de templates pour faire ça discrètement.


---------------
trainoo.com, c'est fini
n°654110
antsite
Je me souviens
Posté le 25-02-2004 à 08:02:51  profilanswer
 

j'itère sur le paramètre du contructeur, la string sIp, et non rien , pas de warnings

n°654111
antsite
Je me souviens
Posté le 25-02-2004 à 08:03:24  profilanswer
 

arg ouais j'ai vu !!!
ben oui tu as raison je vais essayer ça,  pff mais quel boulet :)
 
en passant, laquelles des 2 boucles est préférable ?


Message édité par antsite le 25-02-2004 à 08:04:33
n°654114
nraynaud
lol
Posté le 25-02-2004 à 08:11:23  profilanswer
 

à titre perso, je suis assez pour les itérateurs. Mais quand on fait un parser haute perf, c'est le profiler qui décide.
 
Par contre, je comprends pas bien ce que tu fais.
 
tu parses les chaines de la forme "acd.efg.hij.klm.nop.qrs.tuv" ?
pour en sortir {"e", "h", "k", "n", "q", "t"}, en explosant éventuellement la taille du tableau ?


---------------
trainoo.com, c'est fini
n°654230
Joel F
Real men use unique_ptr
Posté le 25-02-2004 à 10:25:56  profilanswer
 

Pour les parser en C++, y a Spirit de boost.org

n°654631
antsite
Je me souviens
Posté le 25-02-2004 à 15:54:36  profilanswer
 

non je parse juste une IP :)

n°654834
Joel F
Real men use unique_ptr
Posté le 25-02-2004 à 16:45:29  profilanswer
 

strstream est ton ami alors

n°654867
Taz
bisounours-codeur
Posté le 25-02-2004 à 16:57:28  profilanswer
 

Joel F a écrit :

strstream est ton ami alors

TCPL3rd est ton ami :o
stringstream :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] string.append(1, *iter); ne marche pas...

 

Sujets relatifs
[VB Excel] Concaténer ok ! mais "déconcaténer" une String ?Pourquoi ca ne marche pas sous mozilla ?
<SELECT> <option Style="font-family:Arial Black"... .?? Marche pas.. ?Commande Free() et Delete() ca marche quand ca veut?
Mon EJb ne marche plusbibliotheques stream, string, fstream ...
[VBA] creer dynamiquement une combobox - marche tjs pas :sweat:[mysql] Pourquoi ma requete ne marche pas ??
[JS] innerHTML marche pas sous mozilla ? 
Plus de sujets relatifs à : [C++] string.append(1, *iter); ne marche pas...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR