String in einzelne Teile splitten
-
bin anfänger wo kann ich da nachschauen???
lg Patrick
-
Z.B.: http://www.cppreference.com/cppstring/
Caipi
-
Hallo,
du schreibst: ich habe ein Programm geschrieben, ....
dann: .. ich möchte einfach wissen, wie man so was programmieren kann...Na was jetzt? Haste, oder haste nicht???
Mach hier mal ein Angebot. Ohne Moos nix los!
Gruss Jerry
-
jerry schrieb:
Hallo,
du schreibst: ich habe ein Programm geschrieben, ....
dann: .. ich möchte einfach wissen, wie man so was programmieren kann...Na was jetzt? Haste, oder haste nicht???
Mach hier mal ein Angebot. Ohne Moos nix los!
Gruss Jerry
Nanana. Wer wird denn hier gleich so reagieren. Hast du heute Nacht schlecht geschlafen? :p
Der OP hat ja nicht geschrieben sowas a la: "Macht mal". Er möchte ja nur - so vertehe ich das jedenfalls - Anregungen dazu haben. Außerdem kann es doch sein, dass er das Bruchprogramm schon hat, die Eingabe ihm aber zu kompliziert ist und er diese nun ausbessern möchte.
Caipi
-
Nanana. Wer wird denn hier gleich so reagieren. Hast du heute Nacht schlecht geschlafen? :p
Der OP hat ja nicht geschrieben sowas a la: "Macht mal". Er möchte ja nur - so vertehe ich das jedenfalls - Anregungen dazu haben. Außerdem kann es doch sein, dass er das Bruchprogramm schon hat, die Eingabe ihm aber zu kompliziert ist und er diese nun ausbessern möchte.
Caipi[/quote]
Hallo Caipi,
es ist dir sicher auch schon so gegangen, dass du dich um was längere Zeit bemüht hast, und dann kam am Ende was anderes raus, bloss weil die leute nicht richtig sagen was Sache ist. Da vertut man schon ne Menge Zeit. Also: Was sind die Fakten, worauf können wir aufbauen. Dann mache ich gerne mit.
Gruss Jerry
-
caipi hat recht. mein programm funktioniert im moment mit einer anderen eingabe form die mir einfach nicht gefällt ala was wollen sie tun? geben sie den 1.operanten ein! geben sie den 2.operanten ein!
das is sch****
deshalb möcht ich es anders haben. das programm selber funktioniert ja nur sollte es doch möglich sein aus
add 4/5,2/5
heraus zu lesen dass add der operator ist
und 4/5 bzw. 2/5 die beiden brüche im format int oder long.lg Patrick
PS: sorry aba ich dachte ich habs klar beschrieben. hoff es is jetzt klar wo das prob ist. es liegt einzig und allein an der eingabe. ich will mit einer eingabe sowohl operation als auch operanten bestimmen.
-
Hallo Patrick,
so sieht die Sache schon gut aus. Jetzt ist klar worum es geht. es gibt sicher mehrere Möglichkeiten.
Also:-
string op; int z1,n1,z2,n2; char c1, c2,c3,c4;
cin >> op >> z1 >> c1 >> n1 >> c2 >> z2 >> n2; -
string text;
cin.getline(text);
Jetzt mit Funktionen (die ich nicht im Kopf habe) den Text analysieren, dh. das Vorhandensein zB von add festellen (ist eien bestimme Zeichenfolge im Text enthalten?), dann Zahl einlesen, dann / erkennen Komma überprüfen etc)
Jetzt sind die Elemente erkannt. Dann:
switch (op)
{ case "add" : bruch1 + bruch2; break;usw.
}Mfg Jerry
-
-
das problem bei der 2ten methode ist, dass ich zwar die einzelnen "zeichen !!" bekomme aba diese nicht in int umwandeln kann. glaub halt dass das das problem war.
und die erste methode hab ich grad probiert und die funktioniert auch nicht weil er anscheinend nicht weiß wann was kommt.
lg Patrick
-
Zur Konvertierung von einem std::string oder einem char-Array in einen int (und zurück) einfach mal die C++ FAQ: "Einmal Zahl nach String und zurück" zur Rate ziehen.
Caipi
-
das hab ich gestern probiert da hat sich mein compiler im wieder aufgeregt auch wenn ich das genau 1:1 abgeschrieben hab. lag vielleicht an dem problem an dem ich auch heut gescheitert bin.
richtig ich spreche in der vergangenheit denn mit der 1.ten methode funktioniert es jetzt nur kann ich den operator nicht als string definieren sondern als char* und ich hol mir den speicher mit new also:char *op = new char[5];
naja wie gesagt es funktioniert jetzt.
danke viel malslg Patrick
-
hi,
vergiss aber nicht, dass, wenn du mit new den speicher zuweist, den anschließend, dem sauberen programmierstil wegen, zum schluss wieder mit delete freizugeben
char *pchar = new char[10]; /* ... */ delete pchar[];
mfg _mika_
-
ups, das muss
delete p;
heißen....