una prefija postfijas postfija notación notacion infija expresiones expresion evaluador evaluación evalua convertir como calculadora aritmeticas arbol c++ string math

c++ - prefija - Convertir cadena en evaluación matemática



expresiones postfijas (2)

¡Encontré lo que estaba buscando! La fuente descargable es C ++ y un proyecto CodeBlocks. Puede encontrarlo aquí: http://www.speqmath.com/tutorials/expression_parser_cpp/index.html

Un analizador de expresiones mucho más sofisticado recomendado por Jared: http://www.partow.net/programming/exprtk/index.html

De acuerdo, entonces lo que quiero hacer es usar una cadena como entrada (por ejemplo, "16 * 12 + 25"), convertirla a una evaluación matemática que la computadora pueda comprender y devolver el valor evaluado. 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.

Entonces mi pregunta es, ¿hay alguna secuencia de comandos, biblioteca o API que usted sepa 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?


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.