#include enum genre {FINI, OPERATEUR, OPERANDE}; typedef struct terme { enum genre leGenre; union { char operateur; double operande; }op; }Terme; /* Fonction qui sert à parcourir la chaîne de caractères envoyée au clavier par l'utilisateur, donnant la formule à évaluer. La fonction ignore les espaces. Exemple : si l'utilisateur tape : 2 -3.5 * puis return - au premier appel de la fonction, celle-ci retourne une structure dont "le genre" est OPERANDE et dont "l'operande" vaut 2 - au second appel de la fonction, celle-ci retourne une structure dont "le genre" est OPERANDE et dont "l'operande" vaut -3.5 - au troisième appel de la fonction, celle-ci retourne une structure dont "le genre" est OPERATEUR et dont "l'operateur" vaut * - au quatrième appel de la fonction, celle-ci retourne une structure dont "le genre" est FINI. Plus généralement : - Soit le prochain caractère à lire, autre que l'espace, est le caractère de fin de ligne ; le champ "leGenre" de la structure retournée vaut alors FINI. - Soit le prochain terme est un opérateur (+, -, * ou /) ; le champ "leGenre" de la structure retournée vaut alors OPERATEUR et le champ operateur du champ op contient cet opérateur. - Soit le prochain terme est un opérande (une chaîne de caractères représentant un double) ; le champ "leGenre" de la structure retournée vaut alors OPERANDE et le champ operande du champ op contient la valeur, sous forme d'un double, de cet opérande.*/ Terme prochainTerme(void);