Aide langage C

Résolu
code001 -  
fabienlele Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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
mba_pro Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
mba_pro Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
mba_pro Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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
fabienlele Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
**Apres correction**

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