2012-02-24 12 views
21

Ok, quindi quello che voglio fare è usare una stringa come input (ad esempio "16 * 12 + 25"), convertirla in una valutazione matematica che il computer può comprendere e restituire la valutazione valore. Probabilmente potrei scriverlo da solo, ma molto probabilmente ci vorrà un bel po 'e alla fine, comunque, non finirebbe così bene come mi piacerebbe a meno che non volessi dedicarci ancora più tempo.Converti stringa in valutazione matematica

Quindi la mia domanda è, c'è qualche script, libreria o api che sai può farlo per C++? Ne ho trovati alcuni per java, python e .NET. Ma non sto lavorando con nessuno di questi linguaggi e mi piacerebbe rimanere in C++ per tutto il tempo possibile (si spera per tutto il progetto). Hai qualche buona idea o link?

+0

Devi costruire un parser espressione e implementare le funzioni desiderate. –

risposta

4

Non c'è nulla di integrato in C++ per questo; tutto il codice di analisi delle espressioni appartiene al compilatore. Dovrai utilizzare qualche libreria esterna. Una rapida ricerca su Google mostra muParser che sembra abbastanza ragionevole.

+0

+1 per muParser. Lo abbiamo usato nel nostro simulatore neurale MOOSE senza alcun problema. La sua velocità è eccellente. – Dilawar