Pointer/strToken
-
DocShoe schrieb:
Aber da hat der Pi recht... ist gruseliger Code, den du uns da vorgestellt hast, das sollte es seit 10 Jahren nicht mehr in freier Wildbahn geben.
Das sehe ich ja gerne ein
Kann mit denn einer die Lösung zu der oben geschriebenen Fragestellung geben?
-
Gugelmoser schrieb:
Hmm, also wenn du so ein Gefrikel und es ohne C++ Hilfen machen willst, was hälst du dann hiervon?
#include <string> #include <iostream> #include <cstring> using namespace std; int main() { string eingabe; cout << "Befehl eingeben: " << endl; getline(cin,eingabe); char* zeichen = new char[eingabe.size()+1]; strcpy(zeichen, eingabe.c_str()); int erg=0; if(strstr(zeichen,"add")) { for(int i=3; i<=strlen(zeichen); ++i) { if(zeichen[i]>='0' && zeichen[i]<='9') erg += zeichen[i]-'0'; } } else if(strstr(zeichen,"sub")) { for(int i=3; i<=strlen(zeichen); ++i) { if(zeichen[i]>='0' && zeichen[i]<='9') erg -= zeichen[i]-'0'; } } cout << erg; //... }Aber irgendwie find ich das grausam, genauso wie das, das dein Prof. tut, sieht mir irgendwie nach C/C++ Gefrikel aus. Wurde aber bei uns auch so gelehrt, leider :(.
ich danke dir erst mal und werde das später mal testen
DANKE
-
nehme auch gerne LÖSUNGEN mit vectoren an...
-
#include <string> #include <iostream> #include <cstring> using namespace std; int main() { string eingabe; cout << "Befehl eingeben: " << endl; getline(cin,eingabe); char* zeichen = new char[eingabe.size()+1]; strcpy(zeichen,eingabe.c_str()); char* token = strtok (zeichen," "); char arr[10][4] = {}; // Die Größenangaben hier sind halt doof. for(int i=0; token!=NULL; ++i) { strcpy(arr[i], token); token = strtok (NULL," "); cout << arr[i] << endl; } // Jetzt hast alle Teile in arr stehen. }Und wie willst nun weiter machen? Soll man keine Vorzeichen eingeben können?
-
Eine Lösung mit vector hast du doch schon fast.
-
Das, was du uns am Anfang präsentiert hast, ist ein "downgrade" im wahrsten Sinne des Wortes:
string eingabe; //... char* zeichen = new char[eingabe.size()+1]; strcpy(zeichen, eingabe.c_str());Du "kennst" std::string, willst aber mit daraus gebastelten rohen Arrays vom Heap arbeiten... (Kopfschütteln)
Außerdem: wenn du nach fertigen Lösungen suchst, dann bist du hier fehl am Platz. Wir können dir nur Ansätze anbieten und dir auf die Sprünge helfen. Danach ist es deine Aufgabe, daraus eine Lösung zu machen.
-
Gugelmoser schrieb:
#include <string> #include <iostream> #include <cstring> using namespace std; int main() { string eingabe; cout << "Befehl eingeben: " << endl; getline(cin,eingabe); char* zeichen = new char[eingabe.size()+1]; strcpy(zeichen,eingabe.c_str()); char* token = strtok (zeichen," "); char arr[10][4]; // Die Größenangaben hier sind halt doof. for(int i=0; token!=NULL; ++i) { strcpy(arr[i], token); token = strtok (NULL," "); cout << arr[i] << endl; } // Jetzt hast alle Teile in arr stehen. }Und wie willst nun weiter machen? Soll man keine Vorzeichen eingeben können?
man soll zB
add 20 22eingeben
dies soll dann berechnet werden (in dem fall add=addieren)
die anzahl der zahlen soll variabel sein
-
Hilft dir das nun weiter was ich oder wer anders geschriebn hat? Kommst mit dem add sub mul... alleine klar?
-
Gugelmoser schrieb:
Hilft dir das nun weiter was ich oder wer anders geschriebn hat? Kommst mit dem add sub mul... alleine klar?
ich werde es versuchen
VIELEN DANK SCHON MAL FÜR DIE MÜHE
-
Unfassbar, wozu sitzt du in so einem Kurs und fragst hier nur nach LÖSUNGEN. Wozu denkst du postet Pi einen link zu Vectoren und sagt dir auch noch, dass du diesen mal anschauen sollst ? Dann beschwerst du dich, dass er dir nicht die Häppchen vorkauft und dir dann genau sagt, was du ändern musst, anstatt einfach mal zu lesen und zu machen. Unfassbar.
-
cvcv schrieb:
Unfassbar, wozu sitzt du in so einem Kurs und fragst hier nur nach LÖSUNGEN. Wozu denkst du postet Pi einen link zu Vectoren und sagt dir auch noch, dass du diesen mal anschauen sollst ? Dann beschwerst du dich, dass er dir nicht die Häppchen vorkauft und dir dann genau sagt, was du ändern musst, anstatt einfach mal zu lesen und zu machen. Unfassbar.
danke für deine belehrung
-
cvcv schrieb:
Unfassbar.
Ja, ist es. Einfach solche dreisten "Macht mir meine Hausaufgaben"-Aufrufe ignorieren. Alles andere ist nur Zeitverschwendung.
-
Hey,
Auch wenns offtopic ist, möchte ich es gern loswerden:
Ein anderer Lösungsansatz ist es auch, das du einfach zu uns ins Praktikum kommst. Bis zur Abgabe gibt es (theoretisch) 3x 2x 90 Minuten Zeit in denen wir extra für dich da sind.
Alternativ kannst du uns auch eine E-Mail schreiben. Wofür schreiben wir denn die E-Mail Adressen unten aufs Aufgabenblatt?
Denn dafür werden wir Tutoren ja schließlich bezahlt...
Viel Erfolg noch bei der Aufgabe

edit: Für diese Aufgabe sind Pointer nicht zwingend erforderlich...
-
Aber iregendwie klappt das alles nicht
Das ist keine hilfreiche Fehlerbeschreibung! Ich hätte Dir mit so wenig eigener Initiative nicht geholfen.
Gruss