Récupérer une struct dans une chaine

Résolu/Fermé
cengokill Messages postés 252 Date d'inscription dimanche 27 mai 2012 Statut Membre Dernière intervention 19 décembre 2022 - Modifié le 10 mars 2019 à 21:38
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 12 mars 2019 à 19:19
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 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 Ambassadeur 1 554
10 mars 2019 à 21:29
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 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
12 mars 2019 à 19:12
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 252 Date d'inscription dimanche 27 mai 2012 Statut Membre Dernière intervention 19 décembre 2022 18
12 mars 2019 à 19:15
J'ai utilisé les tableaux, merci !
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
12 mars 2019 à 19:19
Cool, bon courage pour la suite de ton projet.
0