Probleme avec STRCAT

Fermé
yassienrt Messages postés 26 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 5 octobre 2010 - 16 mai 2007 à 13:29
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 - 16 mai 2007 à 15:33
bonjour,
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

Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
16 mai 2007 à 13:36
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];
0
yassienrt Messages postés 26 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 5 octobre 2010 1
16 mai 2007 à 13:42
jé fé ces changement et malheursement le bleme perciste encore?? é ck'il s'agit d'une allocation de chaine???
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
16 mai 2007 à 13:54
reumé ton caud é je te diré sa
0
yassienrt Messages postés 26 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 5 octobre 2010 1 > Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007
16 mai 2007 à 14:44
je ve recupérer le nom d'un fichier d'apres un URL
par exemple : c:/doc/yassine.txt, moi je ve ke yassine.txt ctt
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94 > Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007
16 mai 2007 à 14:53
mersi mé sa répon pa a ma kestion

Remets le code que t'as corrigé
0
yassienrt Messages postés 26 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 5 octobre 2010 1 > Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007
16 mai 2007 à 14:58
voici le code
<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>
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
16 mai 2007 à 15:33
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.
0