|
[c] espressioni e tokens, separare operatori da operandi
mi capita di dover fare un es nel quale data una stringa che contiene un espressione del tipo "5+66*17-12" si calcoli il risultato (una pseudocalcolatrice)...le specifiche vogliono che dall espressione si costruisca l albero sintattico e che poi si calcoli tramite uno stack (acchiappando la forma posfissa dall albero)...io sinceramente l ho pensata un po diversamente, cioe non usare un albero e tradurre l infissa in postfissa tramite un semplice stack e poi calcolare con un altro passaggino...il fatto è che abituato alla documentazione di java mi sto trovando in serie difficolta con le funzioni di libreria di c; perche per fare quello che voglio mi servirebbe mettere i token che compongono la stringa nello stack, ma non so come estrapolarli in maniera decente...ho fatto una funzioncina che tokenizza la stringa ma non tiene conto del fatto che i numeri possono avere piu cifre (quindi inservibile per calcolare); sto cercando idee, ad esempio mi puo convenire uno stack di strutture che abbiano un container di stringa, di moto tale che possa calcolare facilmente con operandi (atoi(operando)) e operatori...solo che siamo sempre li, devo mettere il tutto in un albero o in una lista prima di calcolare...chiedo se potete non postare codice (almeno per il momento, mi voglio arrovellare un po da solo per imparare sto benedetto c), ma solo qualche idea, visto che al momento non me ne vengono di valide...grazie in anticipo
|