<?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[Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!)]]></title><description><![CDATA[<p>Ich wollt mir ne Funktion schreiben, mit der ich zwei Strings haargenau vergleichen kann.</p>
<p>Beim Aufruf dieser Funktion kommt immer ein Fehler ich würde eine Bereich überlaufen (ERangeError). Sieht von euch jemand den Fehler?</p>
<pre><code>bool HardCompare(AnsiString &amp;a,AnsiString &amp;b)
{
	a.Trim();
	b.Trim();
	if (a.Length()!=b.Length()) {return false;}
	else
	{
		for (int i=0;i&lt;a.Length();i++) {if (a[i]!=b[i]) {return false;};};
	};
	return true;
}
</code></pre>
<p><strong>Edit:</strong><br />
Bitte aussagekräftige Überschriften wählen. Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184625/probleme-beim-string-vergleich-war-wo-ist-hier-der-fehler</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 05:01:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184625.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Jun 2007 14:28:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 15:32:44 GMT]]></title><description><![CDATA[<p>Ich wollt mir ne Funktion schreiben, mit der ich zwei Strings haargenau vergleichen kann.</p>
<p>Beim Aufruf dieser Funktion kommt immer ein Fehler ich würde eine Bereich überlaufen (ERangeError). Sieht von euch jemand den Fehler?</p>
<pre><code>bool HardCompare(AnsiString &amp;a,AnsiString &amp;b)
{
	a.Trim();
	b.Trim();
	if (a.Length()!=b.Length()) {return false;}
	else
	{
		for (int i=0;i&lt;a.Length();i++) {if (a[i]!=b[i]) {return false;};};
	};
	return true;
}
</code></pre>
<p><strong>Edit:</strong><br />
Bitte aussagekräftige Überschriften wählen. Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307732</guid><dc:creator><![CDATA[digima]]></dc:creator><pubDate>Sun, 17 Jun 2007 15:32:44 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 14:38:34 GMT]]></title><description><![CDATA[<p>Du hast hinter deiner else-Klammer ein ';' hingeschrieben.</p>
<p>Ist das so zulässig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307741</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Sun, 17 Jun 2007 14:38:34 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 14:40:29 GMT]]></title><description><![CDATA[<p>Der Fehler dürfte sein, daß AnsiStrings nicht ab 0, sondern ab 1 indiziert werden.</p>
<p>Nur so nebenbei, es gibt da die Funktion &quot;bool operator == (const AnsiString&amp;, const AnsiString&amp;)&quot;, die genau das macht, was du willst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p><em>Edit:</em> <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13521">@Tobi3000</a>: ja, ist es. Du kannst im Code so viele Semikola setzen, wie du willst - sind dann eben leere Anweisungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307744</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sun, 17 Jun 2007 14:40:29 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 14:48:09 GMT]]></title><description><![CDATA[<p>Hm hab ich auch versucht so zu machen, bloß als ich zB &quot;km&quot; mit &quot;m&quot; verglichen habe, hat der true zurückgegeben hmm. na ich schau nochmal nach. Danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307750</guid><dc:creator><![CDATA[digima]]></dc:creator><pubDate>Sun, 17 Jun 2007 14:48:09 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 14:54:51 GMT]]></title><description><![CDATA[<p>Jetzt hab ich das Problem gefunden, wenn ich &quot;mm&quot; mit &quot;m&quot; vergleiche wird true zurückgeben, ist das immer so, und kann ich das umgehen???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307759</guid><dc:creator><![CDATA[digima]]></dc:creator><pubDate>Sun, 17 Jun 2007 14:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 15:05:48 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Bei mm und m ist doch aber die Länge unterschiedlich.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307766</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 17 Jun 2007 15:05:48 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 15:09:52 GMT]]></title><description><![CDATA[<p>nein ich meinte, wenn ich mit dem Operator von AnsiString vergleiche sprich:</p>
<pre><code>AnsiString a=&quot;mm&quot;;
AnsiString b=&quot;m&quot;;

-&gt;&gt; (a==b) ist true
</code></pre>
<p>ist das immer so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307770</guid><dc:creator><![CDATA[digima]]></dc:creator><pubDate>Sun, 17 Jun 2007 15:09:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 15:11:49 GMT]]></title><description><![CDATA[<p>??<br />
Bei mir macht er das nicht. Zeig mal den Kontext, in dem das auftreten soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307771</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sun, 17 Jun 2007 15:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 15:18:12 GMT]]></title><description><![CDATA[<p>Also folgendes Problem:</p>
<p>Ich habe eine String mit Wert und Einheit, und den will ich zerlegen, und die Einheit herausbekommen.</p>
<p>valuestr ist der String mit Wert und Einheit<br />
unitstrs ist ein Vector mit den einzelnen Einheiten die möglich sind</p>
<pre><code>int unitstart=valuestr.Length();
while ((unitstart&gt;0)&amp;&amp;((valuestr[unitstart]&lt;48)||(valuestr[unitstart]&gt;57)))unitstart--;

valueunit=valuestr.SubString((unitstart+1),valuestr.Length()-unitstart);
valuestr=valuestr.SubString(1,unitstart);
for(int i=(unitstrs.size()-1);i&gt;=0;i--)
{
   if (valueunit==unitstrs[i]) {unit=i;break;}; //hier hunzt irgendwas 
};
value=StrToFloatDef(valuestr,badvalues[0],formatsettings);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1307775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307775</guid><dc:creator><![CDATA[digima]]></dc:creator><pubDate>Sun, 17 Jun 2007 15:18:12 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim String-Vergleich (war: Wo ist hier der Fehler!!) on Sun, 17 Jun 2007 15:36:45 GMT]]></title><description><![CDATA[<p>Hab den Fehler gefunden, und da es sich gehört, auch die Lösung hinzuschreiben:</p>
<p>in der Zeile</p>
<pre><code>if (valueunit==unitstrs[i]) {unit=i;break;};
</code></pre>
<p>muss ein Trim() hin, ansonsten hat man unerwünschte Leerzeichen, die den Vergleich unmöglich machen. Also:</p>
<pre><code>if (valueunit.Trim()==unitstrs[i]) {unit=i;break;};
</code></pre>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307786</guid><dc:creator><![CDATA[digima]]></dc:creator><pubDate>Sun, 17 Jun 2007 15:36:45 GMT</pubDate></item></channel></rss>