Im Text nach einem Wort suchen - C++
-
Hamdi schrieb:
hey dankeschön! nur das problem ist das ist glaube ich wirklich ein bisschen kompliziert mein lehrer würde das merken denke ich..
etwas was ein anfänger nachvollziehen kann wäre echt hammers von euch!
hab das eben ausprobiert er tut mir eh eine fehlermeldung anzeigen (exception ...)
-
Na, wenn es eh eine Schulaufgabe ist wäre es besser, du würdest erst eigene Versuche posten.
Nutzen würde ich:
std::string.find() um das entesprechende Wort zu finden. Alternativ, wenn es das 6. Wort sein soll, würde ich wohl nach dem 5. Leerzeichen suchen (5 Aufrufe von find)
std::string.substr() um das entsprechende rauszukopieren.(ps: mit stringstreams gehts glaub ich enfacher, einfach die ersten 5 Wörter mit dem operator>> einlesen und den Rest dann wegwerfen)
Informationen über das entsprechende auf www.cppreference.com
Jetzt versuchs mal, und wenn es nicht geht posten wie du es probiert hast.
-
"Ungültige Verwendung von Typedef. 'string'"
Ich bekomme diese Fehlermeldung
-
Du brauchst natürlich auch ein Objekt, auf dessen find() du zugreifen kannst
(btw, vielleicht solltest du dich etwas besser mit C++ auseinandersetzen)
-
hmm ich habe das auf jeden Fall so versucht und es ging nicht:
string str;
char c;
while( !dat.eof() )
{
dat.get( c );
str += c;
}
dat.close();
std::string.find("tmp")
-
Und woher soll das find() so wissen, wo es suchen soll? Da fehlen wirklich noch massive Grundlagenkenntnisse.
Besser sieht es so aus:
size_t p = str.find("tmp"); if(p!=string::npos) cout<<"Gefunden an Position "<<p<<endl; else cout<<"nicht gefunden\n";
-
Wenn ich schreibe
std::string.find() bedeutet das, dass du anstelle von std::string den Namen einer varialen von diesem Typ schreibst (siehe CStolls Beispiel)
-
er tut aber jetzt immer: nicht gefunden anzeigen egal was ich eingebe
cin >> tmp; ifstream dat("C://liste.txt", ios::in); string str; char c; while( !dat.eof() ) { dat.get( c ); str += c; } dat.close(); size_t p = str.find("tmp"); if(p!=string::npos) cout<<"Gefunden an Position "<<p<<endl; else cout<<"nicht gefunden\n"; getchar(); getchar(); clrscr();
-
std::string tmp; size_t p = str.find("tmp");das tmp darf nicht in anführungszeichen stehen, sonst sucht er nicht nach dem inhalt der variable tmp, sondern nach dem string "tmp".
mfg,
julian
-
OKay er findets nun, undzwar auf Position 43, wie kann ich jetzt das wort und die folgenden 4 wörter aus der liste entfernen?
-
Hallo!
Also ich bin nun um einiges weiter mein Problem war, dass ich überhaupt erst falsch vorgegangen bin, vielen Dank an euch trotzdem!
Nun habe ich ein anderes Problem, undzwar will ich die Liste mit den Benutzerangaben aufrufen aber er meldet ein linker fehler "ungelöste externe list() referenziert von ..."
was mach ich falsch?
void list(System *tmp, int anz) { int i=0; bool menu=false; clrscr(); gotoxy(28,2); cout << "Benutzerliste"<< endl; gotoxy(28,3); cout << "-------------"<< endl; gotoxy(13,7); cout << "Benutzername: " << tmp[0].bname<<endl; gotoxy(18,9); cout << "Vorname: " << tmp[0].vorname<<endl; gotoxy(21,11); cout << "Name: " << tmp[0].name<<endl; gotoxy(17,13); cout << "Passwort: " << tmp[0].pw<<endl; gotoxy(11,15); cout << "Benutzerstatus: "<<tmp[0].status<<endl; gotoxy(11,20); cout << "Vorblaettern mit v "<<endl; gotoxy(11,20); cout << "zuruecklaettern mit z "<<endl; gotoxy(11,20); cout << "zurueck zum menue mit m "<<endl; while(!menu) { char bl=getchar(); if (bl='z') { clrscr(); i--; gotoxy(13,7); cout << "Benutzername: " << tmp[i].bname<<endl; gotoxy(18,9); cout << "Vorname: " << tmp[i].vorname<<endl; gotoxy(21,11); cout << "Name: " << tmp[i].name<<endl; gotoxy(17,13); cout << "Passwort: " << tmp[i].pw<<endl; gotoxy(11,15); cout << "Benutzerstatus: "<<tmp[i].status<<endl; } else if (bl='v') { clrscr(); i++; gotoxy(13,7); cout << "Benutzername: " << tmp[i].bname<<endl; gotoxy(18,9); cout << "Vorname: " << tmp[i].vorname<<endl; gotoxy(21,11); cout << "Name: " << tmp[i].name<<endl; gotoxy(17,13); cout << "Passwort: " << tmp[i].pw<<endl; gotoxy(11,15); cout << "Benutzerstatus: "<<tmp[i].status<<endl; } else if (bl='m') { menu=true; } } }
-
Hamdi schrieb:
[...] aber er meldet ein linker fehler "ungelöste externe list() referenziert von ..."
was mach ich falsch?
Du hast list() nicht vor dem ersten Aufruf deklariert? Die Signatur deiner Funktion list() stimmt nicht mit der Implementation überein?
greetz, Swordfish
-
Thx hast recht nicht vollständig deklariert im header datei,
nun tut er aber beim aufrufen dieser funktionen u.a. den bildschirm nicht löschen obwohl da clrscr() steht und gibt ausserdem Überschrift nicht aus?
-
Hamdi schrieb:
Thx hast recht nicht vollständig deklariert im header datei,
nun tut er aber beim aufrufen dieser funktionen u.a. den bildschirm nicht löschen obwohl da clrscr() steht und gibt ausserdem Überschrift nicht aus?
kann es sein dass er gleich in die schleife springt? kann ich das verhindern?
-
edit falsch gelandet