EFFACER TOUT LES OCCURENCES D'UN CHARACTÈRE DANS UN STRING

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 3 févr. 2006 à 18:15
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011 - 3 févr. 2006 à 20:56
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/35872-effacer-tout-les-occurences-d-un-charactere-dans-un-string

cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
3 févr. 2006 à 20:56
>> c pour 'caractère pointé'
>> d pour 'destination pointée'
>> et c'est pas causant ? ben là alors je suis déçu...

ba à la relecture dans 6 mois ça parlera moins ^^.

Pour l'économie de ligne:

char *c=buffer, *d=buffer;

Ahah je t'ai bien eu ;-) ne triture pas ton algo il est nickel.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 févr. 2006 à 20:41
c pour 'caractère pointé'
d pour 'destination pointée'
et c'est pas causant ? ben là alors je suis déçu...

au fait, où donc gagner une ligne ?
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
3 févr. 2006 à 20:11
Pour une fois qu'on avait une source commentée ! lol.

Ton code est optimal BruNews (quoiqu'on peut encore économiser une ligne - mais rien en optimisation) mais j'espère que tu n'utilise pas ces noms de variable :D.

<joke>
"BruNews le tirant de cppfrance rrRRrrRRrr."
</joke>

Note à mast :

Le int main(int) n'est pas interdit sous VC++...
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 févr. 2006 à 18:15
Pas besoin de compteurs mais des POINTEURS !!!

char buffer[]; contient la chaine.
char car; contient celui à supprimer.

et voila tout ce dont on a besoin:
char *c, *d;
c d buffer;
while(*c) {
if(*c !car) *d++ *c;
c++;
}
*d = 0; // FINI !!!

Je ne pense pas conserver cette source au dela de ce soir.
Rejoignez-nous