2012-02-24 22 views
21

Bien, entonces lo que quiero hacer es utilizar una cadena como entrada (por ejemplo, "16 * 12 + 25"), convertirla en una evaluación matemática que la computadora pueda comprender y devolver al evaluado valor. Probablemente podría escribir esto yo mismo, pero lo más probable es que tome bastante tiempo y, al final, todavía no terminaría tan bien como me gustaría a menos que quiera dedicarle aún más tiempo.Convertir cadena a evaluación matemática

Así que mi pregunta es, ¿hay alguna secuencia de comandos, biblioteca o API que usted sabe que puede hacer esto para C++? He encontrado algunos para Java, Python y .NET. Pero no estoy trabajando con ninguno de estos idiomas y me gustaría permanecer dentro de C++ durante tanto tiempo (con suerte a lo largo de todo el proyecto) como sea posible. ¿Tienes alguna buena idea o enlaces?

+0

usted tiene que construir un analizador de expresiones y poner en práctica las funciones deseadas. –

Respuesta

4

No hay nada integrado en C++ para esto; todo el código de análisis de expresión pertenece al compilador. Deberá usar alguna biblioteca externa. Una búsqueda rápida en Google muestra muParser, que parece bastante razonable.

+0

+1 para muParser. Lo hemos estado utilizando en nuestro simulador neuronal MOOSE sin ningún problema. Su velocidad es excelente. – Dilawar