Trennen von einem String
-
Hey, gibt es die Möglichkeit einen String auseinander zu friemeln?
Beispiel String-Wert:
"Han Hans"Ich möchte nun Han herausfiltern und in einer neuen Stringvariablen speichern.
Allerdings kann für Han auch ein anderer Wert stehen. Gibt es da ne Möglichkeit?
-
-
????
Bin ja nicht so fähig. Muss ich den String nun erst in ein Char Konvertieren oder wie läuft das ab?
-
... naja es gibt so find methoden beim std::string
da kannst du dir die positionen bestimmter zeichen rausholen. dann gibts noch substr mit der funktion kannst du einen string zerlegen in dem du ihm positionen mitgibst
-
Nein.
Du kannst dir mittels find_first_of() die Position eines gewünschten Trennzeichens (beispielsweise Leerzeichen) in einem String zurückliefern lassen. Wenn das Ergebnis ungleich std::string::npos ist, hast du ein Leerzeichen gefunden und kannst dann mittels substr() den String bis zum Leerzeichen, ab dem Leerzeichen, etc. zurückgeben lassen.
-
Am besten du suchst mit Google nach "c++ string tokenizer". Tokenizer benutzt man, um eine Eingabe an bestimmten Stellen (wie z.B. der Position eines Leerzeichens) zu zerlegen.
-
@Sid2K6
ich meinte das ja mit findmethoden der rest sollte sich ergoogeln lassen
-
Entweder mit find(_first_of), substr und erase oder wenn man einen String in mehrere Tokens splitten will, empfiehlt sich evtl. der boost Tokenizer:
http://www.boost.org/libs/tokenizer/index.html
-
Vellas schrieb:
Entweder mit find(_first_of), substr und erase
Wenn mans von Hand macht, lässt man das erase am besten weg.
-
Jo, hatte da als Gedankengang, dass man nur einen Teil abschneiden will und wenn man den Teil eh nimmer braucht, könnte man den gesicherten Teil auch löschen.
-
oder man nimmt sscanf...
-
qasdfgh schrieb:
oder man nimmt sscanf...
Wir sind hier in C++
(andernfalls könntest du auch gleich strtok() vorschlagen)Oder ausführlicher: sscanf() (und andere C-Funktionen) solltest du besser vermeiden, solange du mit C++ Mittel etwas besseres zusammenbauen kannst. (Stichworte: Speichernutzung, Fehlerkontrolle, Sicherheit,...)