Text aus Variblen rausfischen
-
Moin!
Ich hab eine Frage:
Kann man aus einem Text der in einer Variablen gespeichert ist bestimmte Zeichen raussuchen und dann mit Switch auswerten?mfg C++Progger
-
Ja, kann man. Aber wozu? Das ergibt so wie du es hier schilderst keinen Sinn.
-
C++_Progger schrieb:
Moin!
Ich hab eine Frage:
Kann man aus einem Text der in einer Variablen gespeichert ist bestimmte Zeichen raussuchen und dann mit Switch auswerten?mfg C++Progger
Ja, man kann. Noch weitere Fragen?
-
Ja.
std::string neVariable="einText"; switch(neVariable[0]) { case 'e': break; default: std::cout << "Mit der Welt stimmt was nicht." << std::endl; }
-
Ok, danke schinmal.
Ich mache grade nen Rechner. ISt es möglich, dass der Benutzer eine (einfache) Rechnung wie zum Beispiel5 + 6.4eingibt und das Prog dann das Ergebnis speicher
MfG C++ Progger
-
Klar ist das möglich. Dafür musst du einen Parser bauen. Wenn du beliebig lange geklammerte Ausdrücke mit Grundrechenarten ausrechnen lassen willst, ist das ein wenig aufwändiger.
Wenn du aber immer genau zwei Operanden hast, musst du nur nach dem Rechenzeichen suchen. Alles was davor ist bzw. dahinter sind deine beiden Operanden.
-
C++-Progger schrieb:
Ok, danke schinmal.
Ich mache grade nen Rechner. ISt es möglich, dass der Benutzer eine (einfache) Rechnung wie zum Beispiel5 + 6.4eingibt und das Prog dann das Ergebnis speicher
MfG C++ Progger
Klar, jedoch ist der übliche Ansatz dafür ein anderer (und viel flexibler als switch):
Man erstellt aus dem gelesenen String einen Parserbaum. Dabei ist ein Knoten eine Rechenvorschrift (im einfachsten Fall +,-,*,/) und die Blätter dieses Knotens sind die Zahlen auf die man die Rechenvorschrift anwendet. Die Blätter können natürlich auch wieder neue Knoten mit eigenen Blättern sein. Um das Ergebnis auszurechnen geht man dann den Baum rekursiv durch und berechnet alle Subknoten eines Knotens und schließlich den Knoten selbst.Ich glaube ich habe das gerade nicht sehr verständlich erklärt
. Der hier ist ein besserer Dozent als ich:
http://www.java-forum.org/allgemeines/12306-parser-fuer-mathematische-formeln.html
Das Beispielprogramm ist zwar in Java, aber der Algorithmus ist in C++ ziemlich ähnlich umzusetzen.
-
Wenn man den Ball flach halten will und die Grammatik einfach genug ist, kann man das Rechnen und das Parsen auch gleichzeitig machen. Ohne dabei einen Parsebaum erstellen zu müssen.
Unterscheidet sich im Wesen zwar nicht wirklich von der Variante mit Parsebaum, aber ist viel weniger zu tippen und vermutlich leichter zu verstehen/nachvollziehen.