Bonsoir,
Je ne comprends pas comment faire une fonction qui renvoie un char * avec comme paramètre ( char * source,char* destination) et qui ajoute le 0 à la fin , sans utiliser de strcat.
Bonsoir,
Je ne comprends pas comment faire une fonction qui renvoie un char * avec comme paramètre ( char * source,char* destination) et qui ajoute le 0 à la fin , sans utiliser de strcat.
C'est justement ce que l'on te demande, j'imagine : réécrire strcat.
Qu'est-ce qui te bloque (sois précis) ?
Bonjour
1) tu places un premier pointeur à la fin de "destination"
2) tu places un second pointeur au début de "source"
3) tu recopies le caractère du second à l'endroit du premier
4) tu incrémentes les deux pointeurs et retournes en 3 et ce, jusqu'à trouver le '\0' qui termine "source".
Sinon tu peux, dans un premier temps, écrire un clone de strlen pour avoir une première approche de la manipulation des chaines...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
C'est là la différence entre "réécrire strcat()" et "faire mieux que strcat()".
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Le choix de ne pas ajouter aux responsabilités de la fonction la gestion de la mémoire n'est pas une décision qui s'apprécie qualitativement, c'est une question de paradigme.
Faire mieux que strcat consisterait plutôt à - par exemple - retourner une information non redondante, comme l'adresse du caractère de fin de chaîne ou le nombre d'octets copiés.
Ok, tu veux faire le malin... donc comme la taille d'un pointeur c'est "4" je ne vois pas trop en quoi faire un realloc de 9 me permettra de stocker "Hello World" dans la nouvelle chaine
Surtout (plus sérieusement) tu ne peux faire de realloc que sur un pointeur préalablement alloué par malloc alors qu'on peut très bien invoquer strcat sur un tableau de char...
En fait je suis d'accord avec edgarjacobs et Matt_Houston qui avait mentionné "réécrire strcat" et je me suis cantonné à ça, juste ça. Accessoirement vu l'implication forte du PO dans cette discussion, je pense que j'ai bien fait![]()
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Partager