Probleme avec STRCAT
yassienrt
Messages postés
31
Statut
Membre
-
Stupeflip Messages postés 391 Date d'inscription Statut Membre Dernière intervention -
Stupeflip Messages postés 391 Date d'inscription Statut Membre Dernière intervention -
bonjour,
j'ai un probleme avec la fonction strcat, le programme se bloque tjr sur cette intruction sans me donner des erreurs.
voicile code :
j'ai un probleme avec la fonction strcat, le programme se bloque tjr sur cette intruction sans me donner des erreurs.
voicile code :
char url[]="";
printf("Donner l'emplacement du fichier :");
scanf("%s",&url);
char* tmp;
char* nom_fichie;
for(int i=nb;i<=strlen(url);i++)
{
tmp=(char*)url[i];
strcat(nom_fichie,tmp);
}
2 réponses
Salut,
L'erreur se situe sur le scanf, tu mets un & et il ne faut pas.
Cependant je te conseillerais de changer aussi d'autres choses, comme par exemple le
char url[]="";
Mets plutôt une chaine avec une taille fixe maximale, sinon à quoi sert le for ? Si tu veux copier url dans nom_fichier, il te suffit de faire un strncpy ou un sprintf ça marche très bien. Voire, si tu as la case où comment le nom (ton nb à priori), tu fais directement un
nom_fichier=&url[nb];
L'erreur se situe sur le scanf, tu mets un & et il ne faut pas.
Cependant je te conseillerais de changer aussi d'autres choses, comme par exemple le
char url[]="";
Mets plutôt une chaine avec une taille fixe maximale, sinon à quoi sert le for ? Si tu veux copier url dans nom_fichier, il te suffit de faire un strncpy ou un sprintf ça marche très bien. Voire, si tu as la case où comment le nom (ton nb à priori), tu fais directement un
nom_fichier=&url[nb];
Ca donnerait plutôt quelque chose comme ça:
char url[50];
char nom_fichie[10];
printf("Donner l'emplacement du fichier :");
scanf("%s",url);
nom_fichie=&url[nb];Tes mallocs sont pas trop utiles pour une taille fixe à la création, url je le mets à 50 parce que ça doit surement dépasser de 10, tmp ne sert pu de même que le for si on fait une affectation directe du pointeur.
par exemple : c:/doc/yassine.txt, moi je ve ke yassine.txt ctt
Remets le code que t'as corrigé
<codechar * url=(char *)malloc(10);
char* tmp ;
tmp = (char*)malloc (10);
char* nom_fichie;
nom_fichie=(char*)malloc (10);
printf("Donner l'emplacement du fichier :");
scanf("%s",url);
for(int i=nb;i<=strlen(url);i++)
{
tmp=(char*)url[i];
//nom_fichie=nom_fichie+tmp;
//myStrcat(nom_fichie,tmp);
strcat(nom_fichie,tmp);
}></code>