<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Rekursiv std::string Splitten]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>ich sitze seit geraumer Zeit an einem Problem das mich langsam verzweifeln lässt.<br />
Und zwar habe ich einen Vector mit String die als identifier dienen.<br />
Außerdem habe ich einen ellen langen string den ich splitten will.</p>
<p>Zur veranschaulichung folgendes</p>
<pre><code>std::vector&lt;std::string&gt; identifier;
std::string line = &quot;shkdabfljsdhflahbsdflöhbsadlfjvalsgjvdflakjsdföasdäa654635sdfg52df3g54sd3f4gs3d2fgs3dg&quot;; //halt wahllos zeichen
</code></pre>
<p>Im Vector identifier sind nach der reihe split 'regeln' gespeichert. Z.b. wäre das nullte element &quot;äa&quot; und das erste wäre &quot;sd&quot;.</p>
<p>Ich brauche am ende jedoch einen vector von strings die nach dem slitten übrig bleiben würden.</p>
<p>Ich habe es mehr oder weniger geschafft das ich die ersten zwei stufen splitte aber das habe ich mit schleifen verwirklicht... und ich will nicht pro identifier einen schleifenkopf hin zu fügen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>habt ihr ne Ahnung wie das vllt rekursiv geht?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332318/rekursiv-std-string-splitten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 05:13:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332318.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Apr 2015 21:37:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rekursiv std::string Splitten on Tue, 21 Apr 2015 21:37:30 GMT]]></title><description><![CDATA[<p>Guten Abend,</p>
<p>ich sitze seit geraumer Zeit an einem Problem das mich langsam verzweifeln lässt.<br />
Und zwar habe ich einen Vector mit String die als identifier dienen.<br />
Außerdem habe ich einen ellen langen string den ich splitten will.</p>
<p>Zur veranschaulichung folgendes</p>
<pre><code>std::vector&lt;std::string&gt; identifier;
std::string line = &quot;shkdabfljsdhflahbsdflöhbsadlfjvalsgjvdflakjsdföasdäa654635sdfg52df3g54sd3f4gs3d2fgs3dg&quot;; //halt wahllos zeichen
</code></pre>
<p>Im Vector identifier sind nach der reihe split 'regeln' gespeichert. Z.b. wäre das nullte element &quot;äa&quot; und das erste wäre &quot;sd&quot;.</p>
<p>Ich brauche am ende jedoch einen vector von strings die nach dem slitten übrig bleiben würden.</p>
<p>Ich habe es mehr oder weniger geschafft das ich die ersten zwei stufen splitte aber das habe ich mit schleifen verwirklicht... und ich will nicht pro identifier einen schleifenkopf hin zu fügen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>habt ihr ne Ahnung wie das vllt rekursiv geht?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451145</guid><dc:creator><![CDATA[RecursiveHelp]]></dc:creator><pubDate>Tue, 21 Apr 2015 21:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursiv std::string Splitten on Tue, 21 Apr 2015 21:56:23 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Gib mal ein Beispiel an. Eingabemenge und erwartetes Ergebnis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451146</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 21 Apr 2015 21:56:23 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursiv std::string Splitten on Tue, 21 Apr 2015 22:05:49 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;strstream&gt;
#include &lt;set&gt;

std::vector&lt;std::string&gt; splitString(std::string line, std::string d)
{
	std::size_t pos = 0;
	std::vector&lt;std::string&gt; splitted;
	while ((pos = line.find(d)) != std::string::npos) {
		splitted.push_back(line.substr(0, pos));
		line.erase(0, pos + d.length());
	}
	splitted.push_back(line.substr(0, pos));

	return splitted;
}

int main() {
	std::string line = &quot;kjsadfhhlasdbföajsdfnäasjdfbhsdföabsdfhasödlhfähasvdäaäjkfgbakdfjgüädfjsökdgbsödbglsjfgssldfhgblshbdg&quot;;
	std::vector&lt;std::string&gt; identifier;
	identifier.push_back(&quot;ad&quot;);
	identifier.push_back(&quot;hs&quot;);

	std::vector&lt;std::string&gt; vecString = splitString(line, identifier[0]);
	for each(std::string s in vecString)
	{
		std::vector&lt;std::string&gt; nestedvecString = splitString(s, identifier[1]);
	}
	return 0;
}
</code></pre>
<p>So in etwa, nur rekursiv o.O ich bekomme es einfach nicht hin v.v</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451147</guid><dc:creator><![CDATA[RecursiveHelp]]></dc:creator><pubDate>Tue, 21 Apr 2015 22:05:49 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursiv std::string Splitten on Tue, 21 Apr 2015 22:12:55 GMT]]></title><description><![CDATA[<p>Also beispielsweise man hat folgenden string &quot;ghdabcdefghiajklmnbop&quot; und man hat als identifier &quot;a&quot; und &quot;b&quot;.<br />
Dann wäre nach dem ersten plitt folgendes:<br />
&quot;ghd&quot;<br />
&quot;bcdefghi&quot;<br />
&quot;jklmnbop&quot;</p>
<p>diese wären dann also in einem vector... aber ich muss auf jedes element des vectors solange weiter das split anwenden bis entweder der string leer ist oder aber es keine identifier mehr gibt</p>
<p>nach der zweiten runde säh der vector dann so aus<br />
&quot;ghd&quot;<br />
&quot;cdefghi&quot;<br />
&quot;jklmn&quot;<br />
&quot;op&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451148</guid><dc:creator><![CDATA[RecursiveHelp]]></dc:creator><pubDate>Tue, 21 Apr 2015 22:12:55 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursiv std::string Splitten on Tue, 21 Apr 2015 22:24:00 GMT]]></title><description><![CDATA[<p>Ich nehme an, den entstehenden Leerstring nach dem Splitten von &quot;bcdefghi&quot; an der Stelle &quot;b&quot; hast du vergessen? Oder ist das Absicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451150</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 21 Apr 2015 22:24:00 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursiv std::string Splitten on Tue, 21 Apr 2015 22:26:35 GMT]]></title><description><![CDATA[<p>ja du hast recht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> habe ich vergessen.<br />
Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451151</guid><dc:creator><![CDATA[RecursiveHelp]]></dc:creator><pubDate>Tue, 21 Apr 2015 22:26:35 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursiv std::string Splitten on Tue, 21 Apr 2015 22:52:09 GMT]]></title><description><![CDATA[<p>Ich bin nicht 100% sicher, ob ich alle deine Anforderungen erfülle, aber so oder ähnlich könnte das meines Erachtens nach aussehen:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;iterator&gt;

template &lt;typename InputIterator, typename OutputIterator&gt;
void splitString(std::string line, 
                 InputIterator begin,
                 InputIterator end,
                 OutputIterator out)
{
  if (begin != end)
    {
      auto next = std::next(begin);
      std::size_t pos = 0;
      std::size_t next_pos;
      do
        {
          next_pos = line.find(*begin, pos);
          splitString(line.substr(pos, next_pos - pos), next, end, out);
          pos = next_pos + begin-&gt;length();
        }
      while (next_pos != std::string::npos);
    }
  else
    *out++ = line;
}

int main()
{
  std::string line = &quot;111111aba2222ab333333ab4444444abaab5555abaaba666666ab7777&quot;;
  std::vector&lt;std::string&gt; identifier;
  identifier.push_back(&quot;aba&quot;);
  identifier.push_back(&quot;ab&quot;);

  std::ostream_iterator&lt;std::string&gt; result(std::cout, &quot;\n&quot;);
  splitString(line, identifier.begin(), identifier.end(), result);
}
</code></pre>
<p>viele edits: Mir fallen laufend Verbesserungen ein, je länger ich draufgucke :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451152</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 21 Apr 2015 22:52:09 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursiv std::string Splitten on Tue, 21 Apr 2015 22:55:50 GMT]]></title><description><![CDATA[<p>hammer eil ! danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>funktioniert super (Y)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451153</guid><dc:creator><![CDATA[RecursiveHelp]]></dc:creator><pubDate>Tue, 21 Apr 2015 22:55:50 GMT</pubDate></item></channel></rss>