RECHERCHE ET DE REMPLACEMENT DE CARACTÈRES DANS DES CHAINES

mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023 - 23 mars 2009 à 16:17
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 24 mars 2009 à 14:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49591-recherche-et-de-remplacement-de-caracteres-dans-des-chaines

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
24 mars 2009 à 14:32
Plusieurs remarques :
- Aucun controle sur la validité paramètre.
- Pour la fonction replace : 3 parcours via strlen + une boucle for + un strcpy = zéro niveau peformance
- Aucun controle sur la taille des données : si ma chaine1 = "toto" et que je remplace "to" par "tou" ta fonction plante car tu te bases sur dce que te renvoie le strlen pour initialiser la taille de retour.

Prend un peu plus de temps et de recule sur ce que tu fais et soit critique, car on fait pas du C/C++ pour faire de l'anti-performance ou des machines à bug. D'autre language le font déjà très bien...
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
24 mars 2009 à 13:43
Salut,
j'avais déjà codé la même chose, en utilisant les variadics (pour remplacer d'un seul coup plusieurs éléments), et qui remplaçait TOUS les éléments trouvés, ce que je te conseillerais de faire, histoire de ne pas boucler sur ta fonction si tu as plus d'un élément à remplacer.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 mars 2009 à 22:09
char new_string[string_size];
Que fait cette horreur si plus assez de mémoire ???
Tu le sauras comment ???

for (i 0, l 0; i < string_size; l++, i++)
donc: TANT QUE char i < long string_size
C'est du grand nimporte quoi.
Qui assure que string_size sera toujours <= 127 ???
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023
23 mars 2009 à 16:17
et sur codyx ?
http://www.codyx.org/snippet_remplacer-caracteres-chaine_450.aspx

dès le départ, tu appelles strlen, pour reboucler dessus apres
alors que tu n'as pas besoin de strlen
Rejoignez-nous