Probleme avec STRCAT

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); 
} 
Configuration: Windows Vista
Internet Explorer 7.0

2 réponses

  1. 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
    1. jé fé ces changement et malheursement le bleme perciste encore?? é ck'il s'agit d'une allocation de chaine???
      0
    2. reumé ton caud é je te diré sa
      0
    3. @Stupeflipje 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
    4. @Stupeflipmersi mé sa répon pa a ma kestion

      Remets le code que t'as corrigé
      0
    5. @Stupeflipvoici 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
  2. 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