<?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[String zwischen bestimmten Zeichen ausschneiden?]]></title><description><![CDATA[<p>Ich habe folgenden string:</p>
<pre><code>&quot;Das ist ein [b]$bla$[/b] naja wie gehts dir [b]$xyz$[/b]. Der [b]$bla$[/b] ist [b]%XXX%[/b].&quot;
</code></pre>
<p>Jetzt sieht man die dick beschrifteten wörter, diese sind variablen welche definiert wurden:</p>
<pre><code>bla=Test
xyz=Ops
XXX=fertig
</code></pre>
<p>Jetzt such ich eine Möglichkeit diese String zwischen den <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi></mrow><annotation encoding="application/x-tex">...</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.10556em;"></span><span class="strut bottom" style="height:0.10556em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span></span></span></span> Zeichen zu filtern/ausschneiden.<br />
Hab auch schon hierfür eine gute Funktion gefunden:</p>
<pre><code class="language-cpp">vector&lt;std::string&gt; split(string const&amp; str, string const&amp; sep)
{
    vector&lt;string&gt; ret;
    string::size_type last = 0;
    string::size_type i;

    while ((i = str.find(sep, last)) != string::npos) 
	{
        ret.push_back(str.substr(last, i - last));
        last = i + 1;
    }

    ret.push_back(str.substr(last));
    return ret;
}
</code></pre>
<p>Diese Funktion teilt aber strings ab einem bestimmten Zeichen, kann mir jemand bitte diese Fkt. erweitern so dass zwischen den Zeichen $$ das Wort zurückgegeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/172055/string-zwischen-bestimmten-zeichen-ausschneiden</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 16:07:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/172055.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 31 Jan 2007 20:55:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Wed, 31 Jan 2007 20:55:15 GMT]]></title><description><![CDATA[<p>Ich habe folgenden string:</p>
<pre><code>&quot;Das ist ein [b]$bla$[/b] naja wie gehts dir [b]$xyz$[/b]. Der [b]$bla$[/b] ist [b]%XXX%[/b].&quot;
</code></pre>
<p>Jetzt sieht man die dick beschrifteten wörter, diese sind variablen welche definiert wurden:</p>
<pre><code>bla=Test
xyz=Ops
XXX=fertig
</code></pre>
<p>Jetzt such ich eine Möglichkeit diese String zwischen den <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi></mrow><annotation encoding="application/x-tex">...</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.10556em;"></span><span class="strut bottom" style="height:0.10556em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span></span></span></span> Zeichen zu filtern/ausschneiden.<br />
Hab auch schon hierfür eine gute Funktion gefunden:</p>
<pre><code class="language-cpp">vector&lt;std::string&gt; split(string const&amp; str, string const&amp; sep)
{
    vector&lt;string&gt; ret;
    string::size_type last = 0;
    string::size_type i;

    while ((i = str.find(sep, last)) != string::npos) 
	{
        ret.push_back(str.substr(last, i - last));
        last = i + 1;
    }

    ret.push_back(str.substr(last));
    return ret;
}
</code></pre>
<p>Diese Funktion teilt aber strings ab einem bestimmten Zeichen, kann mir jemand bitte diese Fkt. erweitern so dass zwischen den Zeichen $$ das Wort zurückgegeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220792</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Wed, 31 Jan 2007 20:55:15 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Wed, 31 Jan 2007 21:02:32 GMT]]></title><description><![CDATA[<p>versuche es zu verstehen und machs selber</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220798</guid><dc:creator><![CDATA[auch komm]]></dc:creator><pubDate>Wed, 31 Jan 2007 21:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Wed, 31 Jan 2007 21:06:53 GMT]]></title><description><![CDATA[<p>Ich <strong>bitte</strong> euch nur die Funktion split zu erweitern, den Rest mach ich schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220801</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Wed, 31 Jan 2007 21:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Wed, 31 Jan 2007 21:09:23 GMT]]></title><description><![CDATA[<p>Was willst du denn haben? Willst du das die Variablen durch die richtigen Werte ersetzt werden oder einfach nur die Variablen namen haben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220804</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 31 Jan 2007 21:09:23 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Wed, 31 Jan 2007 21:10:11 GMT]]></title><description><![CDATA[<p>Nur die Variablen Namen, diese werden dann weiterverarbeitet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220805</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Wed, 31 Jan 2007 21:10:11 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Wed, 31 Jan 2007 21:39:14 GMT]]></title><description><![CDATA[<p>kernel64 schrieb:</p>
<blockquote>
<p>Diese Funktion teilt aber strings ab einem bestimmten Zeichen, kann mir jemand bitte diese Fkt. erweitern so dass zwischen den Zeichen $$ das Wort zurückgegeben wird.</p>
</blockquote>
<p>Huh? Die Funktion macht doch (fast) genau was du willst<sup>*</sup>: alle ungeraden Elemente sind deine Variablennamen.</p>
<p><sup>*</sup>sogar obwohl sie falsch ist - such im Forum nach &quot;split&quot; oder &quot;explode&quot;, das gab's schon öfter, und falls du sowieso boost verwendest oder dich damit anfreunden kannst, nimm <a href="http://www.boost.org/doc/html/string_algo.html" rel="nofollow">Boost String Algorithms</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220817</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Wed, 31 Jan 2007 21:39:14 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Wed, 31 Jan 2007 22:02:49 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/4239">@finix</a>: Wieso ist die Funktion falsch? Hab die Funktion aus diesem Forum, naja welche Zeile soll ich verändern damit es funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220830</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Wed, 31 Jan 2007 22:02:49 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Wed, 31 Jan 2007 22:55:14 GMT]]></title><description><![CDATA[<p><code>last = i + sep.length()</code> statt <code>+1</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220857</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Wed, 31 Jan 2007 22:55:14 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Thu, 01 Feb 2007 09:15:01 GMT]]></title><description><![CDATA[<p>Hab das so gemacht:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt; 
#include &lt;vector&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

//Funktion soll strings zwischen bestimmten Zeichen zurückgeben.
vector&lt;std::string&gt; splitEx(string const&amp; str, string const&amp; sep)
{
    vector&lt;string&gt; ret;
    string::size_type last = 0;
    string::size_type i;

    while ((i = str.find(sep, last)) != string::npos) 
	{
        ret.push_back(str.substr(last, i - last));
        last = i + sep.length();
    }

    ret.push_back(str.substr(last));
    return ret;
}

int main()
{
	string str = &quot;hallo $MAMA$ wie gehts dir $XXX$ naja $BLA$&quot;;

	vector&lt;string&gt; token = splitEx(str, &quot;$&quot;);

	for(int i = 0; i &lt; token.size(); i++)
	{
		cout &lt;&lt; token[i] &lt;&lt; endl;
	}

	system(&quot;pause&quot;);		
	return 0;
}
</code></pre>
<p>Wenn jetzt der string str an die Funktion übergeben wird müssten die strings MAMA, XXX, BLA zurückgegeben werden, aber die Funktion gibt alle strings zurück:</p>
<pre><code>hallo
MAMA
 wie gehts dir
XXX
 naja
BLA
</code></pre>
<p>Die Funktion gibt ja alle strings zurück die sich zwischen den Zeichen $$ befinden, d.h. die strings die nicht relevant sind wie &quot;naja&quot; oder &quot;wie gehts dir&quot; werden auch zurückgegeben das soll aber nciht passieren.</p>
<p>Wie soll der Funktion dies klar gemacht werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220935</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Thu, 01 Feb 2007 09:15:01 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Thu, 01 Feb 2007 13:48:15 GMT]]></title><description><![CDATA[<p>Was du machst geht auch nicht. Du suchst immer nur nach dem Zeichen und nimmst dann den String der vor diesem Zeichen steht bzw. zwischen dem aktuellen '<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mrow></mrow><mrow><mi mathvariant="normal">′</mi></mrow></msup><mi>u</mi><mi>n</mi><mi>d</mi><mi>d</mi><mi>e</mi><mi>m</mi><mi>z</mi><mi>u</mi><mi>l</mi><mi>e</mi><mi>t</mi><mi>z</mi><mi>t</mi><mi>g</mi><mi>e</mi><mi>f</mi><mi>u</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>n</mi><mi>e</mi><msup><mi>n</mi><mrow><mi mathvariant="normal">′</mi></mrow></msup></mrow><annotation encoding="application/x-tex">&#x27; und dem zuletzt gefundenen &#x27;</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.751892em;"></span><span class="strut bottom" style="height:0.946332em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord"><span></span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord scriptstyle uncramped"><span class="mord mathrm">′</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord mathit">u</span><span class="mord mathit">n</span><span class="mord mathit">d</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mord mathit">m</span><span class="mord mathit" style="margin-right:0.04398em;">z</span><span class="mord mathit">u</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">e</span><span class="mord mathit">t</span><span class="mord mathit" style="margin-right:0.04398em;">z</span><span class="mord mathit">t</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathit">e</span><span class="mord mathit" style="margin-right:0.10764em;">f</span><span class="mord mathit">u</span><span class="mord mathit">n</span><span class="mord mathit">d</span><span class="mord mathit">e</span><span class="mord mathit">n</span><span class="mord mathit">e</span><span class="mord"><span class="mord mathit">n</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord scriptstyle uncramped"><span class="mord mathrm">′</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>' steht. Was du willst geht so:</p>
<pre><code class="language-cpp">vector&lt;std::string&gt; splitEx(string const&amp; str, string const&amp; sep)  { 
	vector&lt;string&gt; ret;
	size_t first = str.find(sep);
	size_t second = 0;

	while((second = str.find(sep, first+sep.length())) != string::npos) {
		ret.push_back(str.substr(first+1, second-first-1));
		if(second+sep.length()&gt;=str.length()) break;
		first = str.find(sep, second+sep.length());
	}

	return ret;
}
</code></pre>
<p>Erstmal suche ich nach dem Separator und initialisiere first auch gleich damit. Anschließend suche ich nach dem zweiten Separator und pack diesen Wert in den second. Anschließend wird der Wert dazwischen gespeichert. Wenn dann noch Platz für weitere Separatoren sein könnte wird nach dem nächsten gesucht und wieder in first gespeichert. Das läuft dann so lange bis es keine Separator-Paare mehr gibt.</p>
<p>Das sollte denke ich sein was du suchst.</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221079</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Thu, 01 Feb 2007 13:48:15 GMT</pubDate></item><item><title><![CDATA[Reply to String zwischen bestimmten Zeichen ausschneiden? on Thu, 01 Feb 2007 13:32:39 GMT]]></title><description><![CDATA[<p>Vielen Dank <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="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221117</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Thu, 01 Feb 2007 13:32:39 GMT</pubDate></item></channel></rss>