2012-02-24 26 views
21

Tamam, yapmak istediğim bir dizeyi girdi olarak kullanmak (örneğin "16 * 12 + 25"), bilgisayarın anlayabileceği ve değerlendirilebilecek bir matematiksel değerlendirmeye dönüştürmesidir. değer. Muhtemelen bunu kendim yazabilirim, ama büyük olasılıkla bir süre alır ve sonuçta, daha fazla zamana katlanmak istemediğim sürece yine de istediğim kadar iyi olmazdı.Dizgeyi matematiksel değerlendirmeye dönüştürün

Benim sorum şu ki, C++ için bunu yapabileceğini bildiğiniz herhangi bir betik, kitaplık veya api var mı? Hem java, python hem de .NET için bazı buldum. Fakat bu dillerden hiçbiriyle çalışmadım ve mümkün olduğu kadar uzun süre boyunca (umarım tüm proje boyunca) C++ içinde kalmak isterim. İyi fikirlerin veya bağlantıların var mı?

+0

Sen istenilen fonksiyonları bir ifade ayrıştırıcı inşa etmek ve uygulamak zorunda. MuParser için –

cevap

4

Bunun için C++ yerleşik hiçbir şey yoktur; tüm ifade ayrıştırma kodu derleyiciye aittir. Bazı harici kütüphaneleri kullanmanız gerekecektir. Hızlı bir Google araması, oldukça makul görünen muParser'u getirir.

+0

+1. Nöral simülatör MOOSE'umuzda herhangi bir sorun olmadan kullanıyoruz. Onun hızı mükemmel. – Dilawar

İlgili konular