std::string::find substr, bin am Verzweifeln
-
Moin;
origin = "Template bis`loop_names` asdf usw. `endloop`Template ab"; tokenizer(){ size_t loop = origin.find("`loop_"); size_t endloop = origin.find("`endloop`"); if( loop != std::string::npos && endloop != std::string::npos){ //cout << origin.substr(0, loop) << "\n"; // Template bis cout << origin.substr(loop, endloop); // `loop_names` asdf usw. `endloop`Tem // ^ } };
Mein Ziel ist, den Teil von loop_names bis endloop zu extrahieren. Jedoch hat der Ergebnis-Substr noch ein Stück von dem was hinter endloop steht.
Was mache ich falsch? Bitte Hinweise und danke im Vorab,
MFG
-
Der zweite Parameter für substr ist die Anzahl der gewünschten Zeichen!
Wenn also loop bei Stelle x beginnt, und endloop bei Stelle y, dann willst Du y - x + 1 Zeichen haben - aber halt, damit hast Du die Länge von endloop vergessen, die muss also noch draufaddiert werden .... + string("endloop").length
-
Boah, das passt ja ganz genau, herzlichen Dank!!! Echt krass mein Denkfehler, bitte um Nachsicht
Viele Grüße!