Letzten Zeichen einer Eingabe auslesen?
-
Also ich habe so etwas wie eine Lateinwörterbuch vor zu programmieren, und nun wollte ich fragen ob es möglich ist nach einer cin eingabe den String so zu vergleichen das der die letzten 3 Zeichen des Strings nimmt und sie vergleicht. Geht das? Wenn ja wie? MFG: DerLateinProfi
-
klar geht das:
Nimm die Länge mit str.length()
Ziehe 3 ab, und lösche den Rest (Kopie anlegen?) per str.erase(x,x)
Vergleichen...
-
int len; char *text="abcdefgh"; len = strlen(text); if(len>=3 && !strcmp(text+len-3,"fgh")) { .... }
-
char-Variante...

-
latein:5 schrieb:
klar geht das:
Nimm die Länge mit str.length()
Ziehe 3 ab, und lösche den Rest (Kopie anlegen?) per str.erase(x,x)
Vergleichen...Oder einfach
wort.substr(wort.size()-3); // zweiter Längenparameter nicht nötig, da default string::npos
-
Wie müsste das denn jetzt aussehen wenn ich vorher ne CIN habe? Also cin << text; oder so? Aber wie muss die char dann heißen? Ansonsten klingt das erste für mich sinnvoller als das letzte, auch wenn das wahrscheinli8ch auch funktioniert!^^
MFG: DerLateinProfi
-
Also nochmal ganz langsam für sie zum überlegen.
Ich will z.B das Wort "Laudo" = Ich lobe überprüfen. Der User gibt also Laudo ein, und das programm untersucht die letzten 3 Stellen also "udo" und ich mach dann ne If anweisung, dass wenn nur o und nicht to oder so was da wäre ein Text angezeigt wird. Und das wars, also sollen nach einer Eingabe nur die letzten 3 Stellen des Wortes überprüft werden. Hoffe auf Antwort von Ihnen. Vielen Dank.
MFG: DerLateinProfi
-
?
#include <iostream> #include <string> int main() { std::cout << "Vokacabulary: " << std::flush; std::string vocab; std::getline(std::cin, vocab); if (vocab.substr(vocab.length() - 3) == "olf") std::cout << "Your name ends with \"olf\"!" << std::endl; }gib mal "Rudolf" ein.
-
gib mal "Adolf" ein.