<?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[qsort macht Murks]]></title><description><![CDATA[<p>Hi,<br />
Ich habe ein ziemlich sinnfreies Programm geschrieben, das Buchstaben in einem Array sortiert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int Vergleiche (const void* str1, const void* str2)
{

	if ( (char)str1 &lt; (char)str2 )
		return -1;
	if ( (char)str1 == (char)str2 )
		return 0;
	else return 1;

}

int main ()
{

	char chString[9] = &quot;Autohaus&quot;;

	cout &lt;&lt; chString &lt;&lt; endl;

	qsort( (void*)chString, 9, sizeof( char ), Vergleiche );

	cout &lt;&lt; chString &lt;&lt; endl;

	return 0;

} // main
</code></pre>
<p>Zu meiner Überraschung gibt das Programm jedoch folgendes aus:<br />
Autohaus<br />
hutoAus<br />
Da wurden ja nur zwei Buchstaben vertauscht, liegt es vielleicht an meiner Vergleiche Funktion? Ich erkenne den Fehler nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/117352/qsort-macht-murks</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 22:59:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/117352.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 Aug 2005 07:22:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to qsort macht Murks on Sat, 06 Aug 2005 07:22:19 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ich habe ein ziemlich sinnfreies Programm geschrieben, das Buchstaben in einem Array sortiert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int Vergleiche (const void* str1, const void* str2)
{

	if ( (char)str1 &lt; (char)str2 )
		return -1;
	if ( (char)str1 == (char)str2 )
		return 0;
	else return 1;

}

int main ()
{

	char chString[9] = &quot;Autohaus&quot;;

	cout &lt;&lt; chString &lt;&lt; endl;

	qsort( (void*)chString, 9, sizeof( char ), Vergleiche );

	cout &lt;&lt; chString &lt;&lt; endl;

	return 0;

} // main
</code></pre>
<p>Zu meiner Überraschung gibt das Programm jedoch folgendes aus:<br />
Autohaus<br />
hutoAus<br />
Da wurden ja nur zwei Buchstaben vertauscht, liegt es vielleicht an meiner Vergleiche Funktion? Ich erkenne den Fehler nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/846858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/846858</guid><dc:creator><![CDATA[Besucher1]]></dc:creator><pubDate>Sat, 06 Aug 2005 07:22:19 GMT</pubDate></item><item><title><![CDATA[Reply to qsort macht Murks on Sat, 06 Aug 2005 09:00:34 GMT]]></title><description><![CDATA[<p>So gehts</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int Vergleiche (const void* str1, const void* str2){
    if ( *((char*)str1) &lt; *((char*)str2) )
        return -1;
    if ( *((char*)str1) == *((char*)str2) )
        return 0;
    else return 1;
}

int main ()
{

    char chString[9];
    strcpy( chString, &quot;Autohaus&quot;);
    cout &lt;&lt; chString &lt;&lt; endl;

    qsort( (void*)chString, strlen(chString), sizeof( char ), Vergleiche );

    cout &lt;&lt; chString &lt;&lt; endl;
    return 0;

}
</code></pre>
<p>Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/846875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/846875</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sat, 06 Aug 2005 09:00:34 GMT</pubDate></item><item><title><![CDATA[Reply to qsort macht Murks on Sat, 06 Aug 2005 09:08:29 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int Vergleiche( const void * a , const void * b )
{
   return strcmp(reinterpret_cast&lt;const char*&gt;(a),reinterpret_cast&lt;const char*&gt;(b));
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/846879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/846879</guid><dc:creator><![CDATA[RedundancyKiller]]></dc:creator><pubDate>Sat, 06 Aug 2005 09:08:29 GMT</pubDate></item><item><title><![CDATA[Reply to qsort macht Murks on Sat, 06 Aug 2005 09:11:23 GMT]]></title><description><![CDATA[<p>RedundancyKiller schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int Vergleiche( const void * a , const void * b )
{
   return strcmp(reinterpret_cast&lt;const char*&gt;(a),reinterpret_cast&lt;const char*&gt;(b));
}
</code></pre>
</blockquote>
<p>Sorry aber mit strcmp kannst du keine char vergleichen.<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/846881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/846881</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sat, 06 Aug 2005 09:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to qsort macht Murks on Sat, 06 Aug 2005 09:18:24 GMT]]></title><description><![CDATA[<p>Unter C++ gibts bessere Möglichkeiten zu Sortieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/846884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/846884</guid><dc:creator><![CDATA[anmerkung]]></dc:creator><pubDate>Sat, 06 Aug 2005 09:18:24 GMT</pubDate></item><item><title><![CDATA[Reply to qsort macht Murks on Sat, 06 Aug 2005 09:31:13 GMT]]></title><description><![CDATA[<p>Jetzt hab ich es durch ausprobieren selber rausgefunden, in der Vergleiche Funktion muss es <em>(char</em>) heißen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/846886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/846886</guid><dc:creator><![CDATA[Besucher1]]></dc:creator><pubDate>Sat, 06 Aug 2005 09:31:13 GMT</pubDate></item></channel></rss>