Frage zur split (strtok)
-
Hey,
und zwar habe ich ein Problem mit dem splitten eines Strings.
Mein String sieht so in der Art aus:
"|0|H|h[19]|h|r|0|H|h[38]|h|r"
Das Problem ist, dass dieser immer variiert und nicht immer gleich ist.
Und zwar muss ich aus diesem String die zahlen in den [] Klammern auslesen
und durch Namen ersetzen. Z.b.:
19 = "peter"
38 = "luis"Ich hatte die Idee sie anhand von einem bestimmten Zeichen zu Filtern.
(Zum Beispiel: [$19], [$38]).
Aber hab nun nach langem Probieren keine möglichkeit gefunden, das so
hinzubekommen wie ich es möchte.Ich hoffe sehr, dass ihr mir bei meinem Problem weiterhelfen könnt.
Mit freundlichen Grüßen.
-
Dafür gibt es in C++ regex.
-
hi:)
ich hab dich nicht ganz verstanden.
möchtest du:
1. dein string in 2 hälften teilen?
oder
2.ein teil des trings durch einen namen erstzen (wie zb "19" durch "peter")?
-
Das zweite.
-
das ist allgemeine string verarbeitung und an sich ein sehr simples thema noch dazu.Ich kann dir ans herz legen immer ein buch zur hand zu haben mit solchen basics . das habe ich nämlich auch in meinem nachgelesen
das könnte dir helfen:
#include <iostream> #include <string> #include <sstream> using namespace std; int main(){ string quelle = "|0|H|h[1]|h|r|0|H|h[38]|h|r"; string ek = "["; string ek2 = "]"; string name = "peter"; cout << endl; size_t f1 = quelle.find(ek); size_t f2 = quelle.find(ek2); stringstream b; b << f1 << f2; string a = b.str(); int start; int end; if (a == "69") { start = 7; end = 2; } else { start = 7; end = 1; } quelle.replace(start, end, name); cout << endl << quelle << endl; system("pause"); return 0; }
-
lime88 schrieb:
das könnte dir helfen:
Das halte ich für fragwürdig
-
wieso ? ein teil des codes ersetzt doch teile aus einem strings ^^. darum gings doch, oder?