<?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[sonderzeichen in string == replace,find...]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn ich einen string habe mit sonderziechen, dann zeigt er bei find die falsche position.</p>
<p>z.b</p>
<pre><code class="language-cpp">do {
            anfang=string.find(&quot;&lt;&quot;,0);
            ende=string.find(&quot;&gt;&quot;,0);
  if(anfang != string::npos &amp;&amp; ende != string::npos) { string.erase(anfang,ende);} else { break;};

      } while(anfang == string::npos || ende == string::npos);
</code></pre>
<p>wenn er diese schleife durch geht, kommt nicht die postion des &lt; heraus sondern die postion des : (doppeltpunkt).<br />
Das selbe hatte ich auch schon mit andere sonderzeichen.</p>
<p>brauche ich da eine sonderform oder warum gibt er mir die falsche postion an, ich habe auch versucht mit '&lt;', char(60) bringt alles nichts.</p>
<p>mfg<br />
Bully</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/181124/sonderzeichen-in-string-replace-find</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 04:02:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181124.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 May 2007 08:12:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sonderzeichen in string == replace,find... on Thu, 10 May 2007 08:12:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn ich einen string habe mit sonderziechen, dann zeigt er bei find die falsche position.</p>
<p>z.b</p>
<pre><code class="language-cpp">do {
            anfang=string.find(&quot;&lt;&quot;,0);
            ende=string.find(&quot;&gt;&quot;,0);
  if(anfang != string::npos &amp;&amp; ende != string::npos) { string.erase(anfang,ende);} else { break;};

      } while(anfang == string::npos || ende == string::npos);
</code></pre>
<p>wenn er diese schleife durch geht, kommt nicht die postion des &lt; heraus sondern die postion des : (doppeltpunkt).<br />
Das selbe hatte ich auch schon mit andere sonderzeichen.</p>
<p>brauche ich da eine sonderform oder warum gibt er mir die falsche postion an, ich habe auch versucht mit '&lt;', char(60) bringt alles nichts.</p>
<p>mfg<br />
Bully</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282150</guid><dc:creator><![CDATA[Bully23]]></dc:creator><pubDate>Thu, 10 May 2007 08:12:43 GMT</pubDate></item><item><title><![CDATA[Reply to sonderzeichen in string == replace,find... on Thu, 10 May 2007 08:43:24 GMT]]></title><description><![CDATA[<p>find() sollte richtig arbeiten. Aber der zweite Parameter bei erase() ist nicht die Endposition, sondern die Länge des zu löschenden Stringausschnitts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282183</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 10 May 2007 08:43:24 GMT</pubDate></item><item><title><![CDATA[Reply to sonderzeichen in string == replace,find... on Thu, 10 May 2007 08:46:26 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich glaube eher nicht, das dir find die falsche Position zurueckgibt. Dein Code wird eher fehlerhaft sein.<br />
Hier mal eine andere Version die vielleicht das gleich tut <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="😃"
    /> (Problem ist ich weiss nicht exakt was getan werden soll)</p>
<pre><code class="language-cpp">string str(&quot;lassedas&lt;loeschedas&gt;behaltedas&quot;);
	string::size_type anfang = 0;
	string::size_type ende = 0;

	do
	{
		anfang = str.find(&quot;&lt;&quot;,0);
		if (anfang != string::npos)
		{
			ende = str.find(&quot;&gt;&quot;,0);

			if(ende != string::npos)
				str.erase(anfang, ende - anfang + 1);
		}
	}
	while (anfang != string::npos &amp;&amp; ende != string::npos);

	cout &lt;&lt; str;
</code></pre>
<p>Knackpunkt ist, dass string::erase im zweiten Parameter nicht die Position des letzten zu loeschenden Zeichens erwartet, sondern die Anzahl der Zeichen ab dem ersten Parameter.</p>
<p>Gruss,<br />
DeSoVoDaMu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282184</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Thu, 10 May 2007 08:46:26 GMT</pubDate></item></channel></rss>