D'accord... ok, là ça va déjà beaucoup mieux, mais j'ai un autre soucis, dans le même genre. Maintenant quand il trouve un nombre, il l'affiche bien normalement, et quand il trouve un caractère, il l'affiche avec operator, mais voila, si strtod détecte un nombre, elle va supprimer les espaces avant ce nombre, mais pas si ce n'est pas un nombre !
Donc, je me retrouve avec des espacements un peu partout :
A la première itération, j'ai " 7 + 8 *". Ici, strtod va supprimer l'espace devant le 7 et transformer 7 en double. Mais à l'itération suivante, j'aurai " + 8 *".
Ici, elle ne supprime pas l'espace devant le +, et ça va me poser problème dans l'analyse de ma chaine, si je ne veux prendre que le +.
Crois tu qu'en rajoutant un test du style
if (strcmp(*end, " ") == 0) {
"ne pas enregistrer le caractère et passer au suivant";
}
mon problème sera résolu ?
Merci
EDIT : en faisant cela, j'ai l'erreur suivante :
stack-calc.c:45: warning: passing argument 1 of ‘strcmp’ makes pointer from integer without a cast
Edité par Amwus ( 17/03/2007 16:29:00 )"Engl Amps are the best i've ever used... Not only are they powerfull, but they have charachter too..." R. Blackmore