<?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[Abbruchbedingung gesucht...]]></title><description><![CDATA[<p>Hey C++ler,</p>
<p>ich möchte, dass in einem string so lange nach einem Zeichen gesucht wird, bis alle gefunden wurden. Ich habe mir dazu folgendes überlegt:</p>
<pre><code class="language-cpp">string s = &quot;&lt;tag1&gt;abc&lt;/tag1&gt;&lt;tag2&gt;abc&lt;/tag2&gt;&quot;;

while(go) //Tags einlesen
{
    pos1=s.find('&lt;',StartPos);  //Findet Position des ersten &lt;
    pos2=s.find('&gt;',StartPos);  //Findet Position des ersten &gt;

    if(pos2 || pos1 == -1){go=false;} //Abbruchbedingung: Wenn kein&lt; oder kein &gt;

    StartPos = pos2+1;
}
</code></pre>
<p>Wenn die s.find() das Zeichen nicht mehr im String findet liefert sie -1 zurück.</p>
<p>Später beim auswerten, stelle ich fest, dass er nur die ersten beiden tags einliest , also nach &quot;&lt;/tag1&gt;&quot; aufhört. Warum?</p>
<p>mfg Golfi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310038/abbruchbedingung-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 01:42:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310038.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Nov 2012 02:09:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Abbruchbedingung gesucht... on Fri, 02 Nov 2012 02:09:35 GMT]]></title><description><![CDATA[<p>Hey C++ler,</p>
<p>ich möchte, dass in einem string so lange nach einem Zeichen gesucht wird, bis alle gefunden wurden. Ich habe mir dazu folgendes überlegt:</p>
<pre><code class="language-cpp">string s = &quot;&lt;tag1&gt;abc&lt;/tag1&gt;&lt;tag2&gt;abc&lt;/tag2&gt;&quot;;

while(go) //Tags einlesen
{
    pos1=s.find('&lt;',StartPos);  //Findet Position des ersten &lt;
    pos2=s.find('&gt;',StartPos);  //Findet Position des ersten &gt;

    if(pos2 || pos1 == -1){go=false;} //Abbruchbedingung: Wenn kein&lt; oder kein &gt;

    StartPos = pos2+1;
}
</code></pre>
<p>Wenn die s.find() das Zeichen nicht mehr im String findet liefert sie -1 zurück.</p>
<p>Später beim auswerten, stelle ich fest, dass er nur die ersten beiden tags einliest , also nach &quot;&lt;/tag1&gt;&quot; aufhört. Warum?</p>
<p>mfg Golfi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2266460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2266460</guid><dc:creator><![CDATA[Noob_Der_Ersten_Stunde]]></dc:creator><pubDate>Fri, 02 Nov 2012 02:09:35 GMT</pubDate></item><item><title><![CDATA[Reply to Abbruchbedingung gesucht... on Fri, 02 Nov 2012 02:18:31 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(pos2 || pos1 == -1){go=false;}
</code></pre>
<p>sollte so sein</p>
<pre><code class="language-cpp">if((pos2==-1) || (pos1 == -1)) go=false;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2266461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2266461</guid><dc:creator><![CDATA[Flutscherino]]></dc:creator><pubDate>Fri, 02 Nov 2012 02:18:31 GMT</pubDate></item><item><title><![CDATA[Reply to Abbruchbedingung gesucht... on Fri, 02 Nov 2012 08:10:38 GMT]]></title><description><![CDATA[<p>Nimm lieber std::string::npos statt blanke -1. Die Schleife solltest du sofort verlassen, sobald entsprechende Bedingungen erfüllt sind (macht man i.d.R. mit break). In deinem Fall würde ich es aber so shreiben:</p>
<pre><code class="language-cpp">std::string s = &quot;&lt;tag1&gt;abc&lt;/tag1&gt;&lt;tag2&gt;abc&lt;/tag2&gt;&quot;;

do //Tags einlesen
{
    pos1 = s.find('&lt;', StartPos);  //Findet Position des ersten &lt;
    pos2 = s.find('&gt;', StartPos);  //Findet Position des ersten &gt;

    StartPos = pos2+1;
}
while (pos2 != std::string::npos &amp;&amp; pos1 != std::string::npos);
</code></pre>
<p>p.S. Hoffentlich hast StartPos mit 0 initialisiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2266488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2266488</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Fri, 02 Nov 2012 08:10:38 GMT</pubDate></item></channel></rss>