Menu

Récupérer une struct dans une chaine [Résolu]

Messages postés
176
Date d'inscription
dimanche 27 mai 2012
Dernière intervention
21 mars 2019
-
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


Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
7577
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 mars 2019
450
1
Merci
bonjour, peux-tu donner quelques exemples de chaines de caractères, et de leur transformation en structure de type fiche?

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 47519 internautes nous ont dit merci ce mois-ci

Commenter la réponse de yg_be
Messages postés
4998
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
22 mars 2019
916
1
Merci
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

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 47519 internautes nous ont dit merci ce mois-ci

cengokill
Messages postés
176
Date d'inscription
dimanche 27 mai 2012
Dernière intervention
21 mars 2019
8 -
J'ai utilisé les tableaux, merci !
[Dal]
Messages postés
4998
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
22 mars 2019
916 -
Cool, bon courage pour la suite de ton projet.
Commenter la réponse de [Dal]