Schon wieder StringBetween(string.substr())...
-
guten morgen.
ich versuche gerade die Funnktion StringBetween, so umzuschreiben, dass ich damit auch mehrere Wörter "herausholen" kann.
beispiel:
Ich hol mir den Source von google.de per WSA und möchte anschliessend alle Cookies extrahieren.Content-Type: text/html; charset=UTF-8 Set-Cookie:PREF=ID=dc0ae71c55dd1967:TM=1262770468:LM=1262770468:S=Lg6uv9GIPqdDK74-;expires=Fri, 06-Jan-2012 09:34:28 GMT; path=/; domain=.google.de Set-Cookie: NID=30=Puj4EOco_v8gq6AokQ5KFZrxjfnmt46E2Hx023IRHfOxfUJEvmrN19F9p0EsGswuZB0JLYminJlPK0bl9PdzeyQuKu2qB-GAjEgmO_Wy-euO2iWpO-8sVknNN0m9h-i5; expires=Thu, 08-Jul-2010 09:34:28 GMT; path=/; domain=.google.de; HttpOnlyJetzt möchte ich folgendes erreichen.
Ich möchte beide Namen samt Inhalt von den Cookies haben.
Hier ist meine Funktion:string StringBetween(const string& input, const string& left, const string& right) { size_t posLeft, posRight; posLeft = input.find(left); posRight = input.find(right); if (posLeft == string::npos || posRight == string::npos) { return ""; // Nicht gefunden } posLeft += left.length(); posRight += right.length(); string ergebnis1 = input.substr(posLeft, input.length() - right.length() - left.length()); int formel = (input.find(right) - posLeft); string ergebnis2 = ergebnis1.substr(0, formel); return ergebnis2; }Leider schaffe ich es nicht immer den Teil, den ich schon behandelt habe, per string.substr() rauszuschneiden...
mfg
@night@
-
Wenn ich mich nicht täusche, ungetestet:
string StringBetween(const string& input, const string& left, const string& right) { size_t posLeft, posRight; posLeft = input.find(left); posRight = input.find(right); if (posLeft == string::npos || posRight == string::npos) { return ""; // Nicht gefunden } posLeft += left.length(); string ergebnis1 = input.substr(posLeft, posRight - posLeft); return ergebnis1; }
-
Zwar hat deinen Antwort iwie keinen Sinn, aber das Problem hat sich ohnehin gelöst^^
mfg
@night@
-
Hat sie nicht? Wäre mir neu. Naja.
EDIT: Hab meine Antwort mal getestet: Funktioniert.