Mathematischer Ausdruck in String
-
Hallo Leute,
ich habe einen String mit einem mathematischen Ausdruck, wie z.B.
"1+2+3-4",
den der Benutzer zur Laufzeit eingibt.
Gibt es eine elegante Möglichkeit, diesen Term zu berechnen,
oder muss ich den String parsen, zerlegen und einzeln berechnen?MfG
Chris_
-
Chris_ schrieb:
oder muss ich den String parsen, zerlegen und einzeln berechnen?
Darauf wird es wohl hinauslaufen. Oder vielleicht findest du ja eine lib, die eine solche Funktionalität anbietet.
-
Ok danke!
Ich habe schon im Internet gesucht, aber nicht so ganz das Richtige gefunden.
Dann werd ich den String wohl parsen müssen.MfG
Chris_
-
Ich glaube, zu dem Thema gab es hier auch schon einige Threads. Versuch's einfach mal mit der Suchfunktion, vielleicht wirst du da schon fündig.
-
_matze schrieb:
Ich glaube, zu dem Thema gab es hier auch schon einige Threads.
genau, da gibt's einiges. Suche hier im Forum nach 'Taschenrechner'. Dann findest Du neben den schon von _matze genannten Beitrag auch noch fertigen Code zum Berechnen eines solchen Ausdrucks.
Ansonsten schau Dir mal den Recursive Descent Parser an.
:xmas2: Werner
-
muParser könnte das sein, wonach du suchst.
-
Hi Chris_,
dann empfehle ich auch noch mal meinen eigenen "Funktionsparser", s. http://www.c-plusplus.net/forum/p1780654#1780654
Damit kannst du dann beliebige math. Formeln ausrechnen lassen (inkl. der üblichen Operatoren +,-,*,/ mit Präzedenzen und Klammern als auch Funktionen wie sin(x), cos(x), exp(x) etc.). Und er ist beliebig mit eigenen Operatoren bzw. Funktionen erweiterbar.