Remplacement d'un motif dans une chaine de caractères - C++ - Programmation
Marsh Posté le 24-06-2010 à 09:30:27
Pourquoi tu ne repars pas de found dans ton find ?
De tête :
Code :
|
PS : Au passage tu peux rajouter a found la taille de la valeur de remplacement pour éviter un remplacement récursif. (rajouté dans le code ci-dessus)
Marsh Posté le 24-06-2010 à 09:13:08
Bonjour,
Je souhaite trouver une méthode efficace en terme de rapidité pour remplacer un motif apparaissant plusieurs fois dans une chaine de caractères.
ex:
"blabla $tag$ bla bla bla $tag$ $tag$".
->remplacer tous les $tag$ par "toto".
Pour l'instant, j'ai fait de cette façon:
Mais ça me paraît hautement inefficace (je re-parse la chaine de caractères en entier à chaque fois)
En Java, j'aurai fait un source.split($tag$) et j'aurai ensuite fait un StringBuffer pour reconcaténer en plaçant ma value entre les morceaux, quitte à payer le prix d'une copie à la fin.
Vous avez une meilleure solution en C++? Par exemple une méthode toute faite de la librairie STL?