Liz Geschrieben 27. Dezember 2006 Geschrieben 27. Dezember 2006 Hallöchen! Ich will, aus einem string z.B. 1+2*3-4/6 nur die Zahlen auslesen und in ein Array schreiben! Hier ist meine Überlegung: :confused: int Zahlen(string st_Gleichung) { stringstream ss1,ss2; string st_zahl; int k=0,m=0, x,temp,a=0; int zahl; ss1<<st_Gleichung.length(); ss1>>x; char such_zeichen[] = "/*+-"; int Zeichenarray[x]; int Zahlenarray[x]; do { pos =st_Gleichung.find_first_of(such_zeichen, pos + 1); cout << "Zeichen an Position: "; cout << pos << endl; //ausgabe nur für testzwecke Zeichenarray[k]=pos; k++; }while(pos != -1); system("pause"); //int b=Zeichenarray[0]; int b; for (int i=0; x>i; i++) { cout << "a= "<< a<<endl; cout << "b= " << b<< endl; st_zahl=st_Gleichung.substr(a,; a=Zeichenarray; b=Zeichenarray+1; ss2<<st_zahl; ss2>>zahl; cout<<i<< ". Zahl: " << zahl <<endl; Zahlenarray[m]=zahl; m++; temp=Zeichenarray; //cout<<temp; if (temp==-1) break; } for (int n = 0; n<=x ;n++)//test { cout <<"Zahlenarray "<< Zahlenarray[n] <<endl; } system("pause"); } Mach das ganze Sinn? Oder habt Ihr bessere Ideen? Vielen lieben Dank schon mal! Lisa Zitieren
Guybrush Threepwood Geschrieben 27. Dezember 2006 Geschrieben 27. Dezember 2006 Also ich hab mir den Code jetzt nicht angeguckt, aber da du die Gleichung ja bestimmt lösen möchtest, macht ein Array nicht so viel Sinn. Besser wäre es das Ganze in einem Baum zu speichern. Ich hab das zwar selbst noch nicht gemacht, aber mal in einem Webcast gesehen (ich glaube in einem von denen http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0607-01.mspx), wenn du das erstmal in dem Baum abgelegt hast kannst du die Gleichung ganz einfach ausrechnen und dabei so Sachen wie Punkt vor Strich beachten. Im Array wird das schon schwerer. Sollte das nicht in dieser Webcastreihe enthalten sein dann kann ich auf der Arbeit nochmal nachschaue, da hab ich die alle runtergeladen. Zitieren
HansChrisLuk Geschrieben 31. Dezember 2006 Geschrieben 31. Dezember 2006 Hallo, also falls Du nur die Zahlen rauslesen möchtest, könnte vielleicht eines der folgenden Dinge helfen strcspn() – einen Teilstring ermitteln strpbrk() – Auftreten bestimmter Zeichen suchen strrchr() – das letzte Auftreten eines bestimmten Zeichens im String suchen strstr() – String nach Auftreten eines Teilstrings durchsuchen strtok() – String anhand bestimmter Zeichen zerlegen Wird ausführlich auf dieser Seite beschrieben: Galileo Computing :: C von A bis Z – 13.15 Standard-Bibliothek <string.h> Falls Du es richtig ausrechnen musst, dann hat Guybrush recht, da sind dann Binärbäume am besten... Gruß Chris Zitieren
Klotzkopp Geschrieben 31. Dezember 2006 Geschrieben 31. Dezember 2006 Wird ausführlich auf dieser Seite beschrieben: Galileo Computing :: C von A bis Z – 13.15 Standard-Bibliothek <string.h>Da das Programm in C++ geschrieben ist, ist das leicht am Thema vorbei. Da würde ich eher hierauf verweisen: C++ Strings Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.