Opérations dans une chaine de caractères

Résolu
cs_bagaz Messages postés 9 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 27 mai 2007 - 8 avril 2007 à 00:17
cs_bagaz Messages postés 9 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 27 mai 2007 - 9 avril 2007 à 02:30
Bonjour à tous.
Voila j'aimerais faire un programme qui fasse l'évaluation d'une expression qui tient dans un char * et qui retourne le resultat.
un exemple : "27877775+89"   ou  "24894180*12484859".
Si quelqu'un à une idée elle serait la bienvenue .
Merci d'avance.
Nunca hemos dejado de aprender.

4 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
8 avril 2007 à 04:21
Le pointeur q ne sert à rien ici je crois:

char c[] = "123+456", *p = strchr(c, '+');
int res;

*p++ = 0;

res = atoi(c)+atoi(p);

Je ne peux pas tester mais je crois que c'est bon.

C++ (@++)<!--
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
8 avril 2007 à 01:10
Salut:

Cas d'une addition:

char * operation = "123 + 566";

char * p = strchr (operation, '+');
char * q = (char *)strdup (p + 1);

*p = '\0';

int a = atoi (operation);
int b = atoi (q);

int res = a + b;

Dans des cas plus complexes avec des parenthèses, des régles d'associativités en jeu une pile fera l'affaire.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
8 avril 2007 à 01:11
Salut:

Il faut faire le ménage aussi:

free (q);


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
0
cs_bagaz Messages postés 9 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 27 mai 2007
9 avril 2007 à 02:30
Merci beaucoup
Je crois que je vais m'en sortir à présent grâce à votre aide à tous.
A bientôt.
0
Rejoignez-nous