RECHERCHE ET DE REMPLACEMENT DE CARACTÈRES DANS DES CHAINES

mogwai93
Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015
- 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
1
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
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
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
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015

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