Copie d'une chaine dans une autre
NG007
Messages postés
25
Statut
Membre
-
NG007 Messages postés 25 Statut Membre -
NG007 Messages postés 25 Statut Membre -
Bonjour,
qqn pourrait m'aider sur cet exo:j'ecris une fonction permettant de copier une chaine dans l'autre.Je l'ai fait mais rien na s'affiche sur l'ecran.
le voici:
qqn pourrait m'aider sur cet exo:j'ecris une fonction permettant de copier une chaine dans l'autre.Je l'ai fait mais rien na s'affiche sur l'ecran.
le voici:
int my_putchar(char c)
{
write(1, &c, 1);
}
void *malloc( int size);
int my_strlen(char *src)
{
int i=0;
while(src[i]!='\0')
i++;
return (i);
}
char *my_strcpy(char *dest, char *src)
{
int i=0;
while(src[i] !='\0')
{
dest[i] = src[i];
i++;
}
return(dest);
}
int main( )
{
char *src;
char *dest;
src="epitech !\n";
dest=malloc((my_strlen( src)+1 ) + sizeof (*dest));
strcpy(src,dest );
printf("%s",*my_strcpy(src,dest));
}
A voir également:
- My_strcpy
- Copie cachée - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
- Chaine tnt gratuite sur mobile - Guide
1 réponse
Salut,
Il y a pas mal de petites erreurs.
Tout d'abord pourquoi déclarer le prototype de malloc ? Autant inclure #include <stdlib.h>
Pourquoi utiliser strcpy alors que tu te crées une fonction my_strcpy ?
D'ailleurs dans ta fonction my_strcpy n'oublie pas l'ajout d'un \0 pour délimiter la chaîne dest.
Pour l'allocation de dest : my_strlen(src)+1 suffit. Le sizeof(*src) n'apporte rien.
Dans ta fonction main(), tu t'es trompé dans l'ordre des arguments lors de ton appel à la fonction my_strcpy. Il faut passer dest en premier (selon le prototype de ta fonction).
N'oublie pas non plus de libérer le malloc avec un petit free.
Et enfin, il faut mettre un return 0; à la fin.
Cdlt
Il y a pas mal de petites erreurs.
Tout d'abord pourquoi déclarer le prototype de malloc ? Autant inclure #include <stdlib.h>
Pourquoi utiliser strcpy alors que tu te crées une fonction my_strcpy ?
D'ailleurs dans ta fonction my_strcpy n'oublie pas l'ajout d'un \0 pour délimiter la chaîne dest.
Pour l'allocation de dest : my_strlen(src)+1 suffit. Le sizeof(*src) n'apporte rien.
Dans ta fonction main(), tu t'es trompé dans l'ordre des arguments lors de ton appel à la fonction my_strcpy. Il faut passer dest en premier (selon le prototype de ta fonction).
N'oublie pas non plus de libérer le malloc avec un petit free.
Et enfin, il faut mettre un return 0; à la fin.
Cdlt
NG007
Messages postés
25
Statut
Membre
4
ok fiddy encore une fois merci beaucoup pour ton coup de main.