2012-02-24 11 views
21

Ok, więc chcę użyć ciągu znaków jako danych wejściowych (na przykład "16 * 12 + 25"), przekonwertować go na matematyczną ocenę, którą komputer może zrozumieć i zwrócić ocenę wartość. Prawdopodobnie mógłbym to napisać samemu, ale najprawdopodobniej zajmie to sporo czasu i ostatecznie nie skończy się tak dobrze, jak bym chciał, chyba że chcę w to jeszcze poświęcić więcej czasu.Konwertuj ciąg na matematyczną ocenę

Moje pytanie brzmi: czy istnieje skrypt, biblioteka lub api, które można zrobić w C++? Znalazłem niektóre zarówno dla java, Pythona i .NET. Ale nie pracuję z żadnym z tych języków i chciałbym pozostać w C++ tak długo (miejmy nadzieję, przez cały czas trwania projektu), jak to tylko możliwe. Czy masz jakieś dobre pomysły lub linki?

+0

Trzeba zbudować parser wyrażeń i wdrożenie odpowiednich funkcji. –

Odpowiedz

4

Nie ma nic wbudowanego w C++; cały kod parsujący wyrażenie należy do kompilatora. Będziesz musiał użyć zewnętrznej biblioteki. Szybkie wyszukiwanie w Google przynosi muParser, co wygląda całkiem rozsądnie.

+0

+1 dla muParser. Używaliśmy go w naszym symulatorze nerwowym MOOSE bez żadnego problemu. Jego prędkość jest doskonała. – Dilawar