Récupérer une struct dans une chaine

Résolu
cengokill Messages postés 314 Statut Membre -  
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour, J'ai un programme avec une déclaration de variable de type struct fiche.
J'ai un fichier texte, et j'ai une fonction qui me permet de récupérer certains mots de ce fichier texte.

J'aimerai pouvoir afficher la fiche d'une variable fiche, mais en récupérant un mot.

Par exemple :
typedef struct{ 
    char nom[50] ; 
    char taille[50] ;
} fiche ;

fiche bob = {"Bob", "1m80"} ;
fiche lucie = {"Lucie", "1m60"} ;

void renv_fiche(char* src){ //renvoie la fiche d'une personne
    fiche f = src; // c'est ici que ça bloque, j'aimerais convertir la chaine src en fiche src
    printf("%s\n%s", f.nom, f.taille);
}


Configuration: i7 8700K
Zotac GTX 1080 AMP! Extreme
16 Go RAM
Phanteks Enthoo Primo


2 réponses

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonjour, peux-tu donner quelques exemples de chaines de caractères, et de leur transformation en structure de type fiche?
1
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
Salut cengokill,

Déjà, tu pourrais commencer par utiliser une structure de données qui te permette d'énumérer les fiches qui sont des
struct
, par exemple en faisant un tableau de
struct
. Cela t'a déjà été conseillé dans un autre topic par yg_be, mais, de façon inexplicable, que tu ne le fais pas ici alors tu as exactement le même problème d'énumération...

Donc, fais un truc du genre :

typedef struct {
    char nom[50];
    char taille[50];
} fiche;

#define MAX_FICHES 2

fiche fiches[MAX_FICHES] = {
    { "Bob", "1m80" },
    { "Lucie", "1m60" }
};

La ligne 8 déclare un tableau de type
fiche
en utilisant l'alias que tu as créé avec
typedef
sur la
struct
. Le nom du tableau est
fiches
et il est dimensionné pour 2 éléments, ses éléments étant tous initialisés avec des valeurs en dur accessibles dans le tableau au lieu de se balader à droite et à gauche.

Ainsi, les membres de la
struct
contenant
"Bob" 
peuvent être accédés en faisant
fiches[0].nom
et
fiches[0].taille
et tu peux énumérer le contenu de la base de fiches en faisant varier l'indice de
0
à
MAX_FICHES - 1
dans une boucle.

Une fois que tu dispose de la bonne structure de données, le reste devrait couler de source, à condition que tu aies les idées claires sur ce que tu veux faire :-)


Dal
1
cengokill Messages postés 314 Statut Membre 18
 
J'ai utilisé les tableaux, merci !
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
Cool, bon courage pour la suite de ton projet.
0