Probleme avec STRCAT

yassienrt Messages postés 31 Statut Membre -  
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 :
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. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
     
    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. yassienrt Messages postés 31 Statut Membre 1
       
      jé fé ces changement et malheursement le bleme perciste encore?? é ck'il s'agit d'une allocation de chaine???
      0
    2. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
       
      reumé ton caud é je te diré sa
      0
      1. yassienrt Messages postés 31 Statut Membre 1 > Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention  
         
        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
      2. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94 > Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention  
         
        mersi mé sa répon pa a ma kestion

        Remets le code que t'as corrigé
        0
      3. yassienrt Messages postés 31 Statut Membre 1 > Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention  
         
        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
  2. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
     
    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