Aide langage C

Résolu
code001 -  
fabienlele Messages postés 4 Statut Membre -
SLT,je me quetionne est ce qu'on peut appliquer la commande swhitch avec les chaines de caracteres
bref est ce peut faire

printf("donner votre commande\n");
scanf("%s",com);
switch(com)
{
case "dir":dir(...);break;
case "cd":cov(...);break;
}
sinon donner moi une solution svp
Configuration: Windows XP
Firefox 1.5.0.3

4 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    houla, je pense pas. pour moi switch fonction qu'avec les entiers ( c.à d. int, long... char et enum).
    je te conseil de créer une fonction et des variables.
    const char**  commandes={"dir","cd",...,0}
    int commande_no(char* c)
    {
    int i=0;
    while(commande[i]!=0)
    {if(!strcmp(commande[i],c)) return i;
    i++;
    }
    return -1;//pour l'erreur commande non reconnue
    }

    Puis pour le switch :
    switch(commande_no(com)){case 0:...//commande dir
    case1:... etc.

    je n'ai pas tester, il y a peut être des erreurs, en particulier sur strcmp, mais c'est l'esprit.
    0
    1. mba_pro Messages postés 3 Date d'inscription   Statut Membre
       
      merci,c'est une bonne solution,mais je suis tombé ds un autre brobleme
      en faite j'essai de faire un programme qui simule les commandes de ms_dos sur les repertoires et fichiers avec l'aide des arbres
      mon pbleme que le pgramme comprent par exemples:
      c:\cd rep1
      j'ai pense de faire une fonction qui se charge de prendre la chaine de caractere apres chaque espace ,je me qustionne est ce qu'il ya une fonction predefinie realisant se travaille,sinon es ce qe tu as une autres solution
      0
    2. mba_pro Messages postés 3 Date d'inscription   Statut Membre
       
      est ce tu peut m'aider a faire un programme c qui sert simuler les commande de ms_dosr,a l' aide des arbres
      avec la structure
      struct arbre
      {
      char type[2];
      char date[9];
      char ut[11];
      char nom[31];
      int taille;
      struct arbre *pere;
      struct arbre *fils;

      };typedef struct arbre ARBRE;

      ce programme simule en +- MSDOS c.a.d commende login <utilisateur> ,cd <nom,type.....> ,dir...

      type :fichier ou repertoire
      date :date de creation
      ut:utilisateur
      nom:nom de rep ou fich
      taille de fich

      Configuration: Windows XP
      Firefox 1.5.0.3
      0
  2. mba_pro Messages postés 3 Date d'inscription   Statut Membre
     
    merci,c'est une bonne solution,mais je suis tombé ds un autre brobleme
    en faite j'essai de faire un programme qui simule les commandes de ms_dos sur les repertoires et fichiers avec l'aide des arbres
    mon pbleme que le pgramme comprent par exemples:
    c:\cd rep1
    j'ai pense de faire une fonction qui se charge de prendre la chaine de caractere apres chaque espace ,je me qustionne est ce qu'il ya une fonction predefinie realisant se travaille,sinon es ce qe tu as une autres solution
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Houla, je suis nul en liste chainée... Père fils machin, je trouve ça lourd et je m'y perd très vite.
    pour les chaines de caractère, il y a pas mal de fonction prédéfini dans les entêtes standard (stdio, stdlib...) sinon, il y a aussi string.h
    Vois là : https://en.cppreference.com/w/
    C I/O et string, tu devrai trouver ton bonheur.
    0
  4. fabienlele Messages postés 4 Statut Membre
     
    **Apres correction**

    Pardon je comprends pas comment j'ai fait ça.
    0