<?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[Arrays Funktionen Palindrom bool]]></title><description><![CDATA[<p>Guten Abend,<br />
ich sitze grade vor folgender Aufgabe:<br />
Schreiben Sie eine Funktion bool Palindrom (char K [ ]), die überprüft, ob eine übergebene Zeichenkette ein Palindrom ist. Der Rückgabewert ist entweder true ider false.</p>
<p>Beispiel:<br />
char Kette[5] = &quot;otto&quot;; //Version Extrem: &quot;ein esel lese nie&quot;<br />
if (Palindrom (Kette) == true)<br />
cout &lt;&lt; Kette &lt;&lt; &quot; ist ein Palindrom&quot;;</p>
<p>(Ein Palindrom ist ein Wort, dass von hinten und vorne gleich gelesen wird Bsp: anna)</p>
<p>Mein bisheriger Programmcode:</p>
<p>Code:<br />
#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>bool test(char q[],char z[])<br />
{<br />
int d=0;<br />
for(int i=7; q[i] != q[0] &amp;&amp; z[d] != '\0'; i--)<br />
{<br />
z[d]=q[i];<br />
d++;<br />
}</p>
<p>int zähler=0;<br />
for(int i=0; q[i]!='\0'&amp;&amp;z[i]!='\0' ;i++)<br />
{</p>
<p>if(z[i]==q[i])<br />
{<br />
zähler=zähler+0;<br />
}<br />
if(z[i]!=q[i])<br />
{<br />
zähler=zähler+1;<br />
}</p>
<p>}<br />
if(zähler&gt;0)<br />
{<br />
return false;<br />
}<br />
if(zähler==0)<br />
{<br />
return true;<br />
}</p>
<p>}</p>
<p>int main()<br />
{<br />
char text1[8];<br />
char text2[8]={};<br />
int erg;</p>
<p>cout&lt;&lt;&quot;Geben sie eine Zeichenkette mit max. 7 Zeichen ein: &quot;&lt;&lt;endl;<br />
cin&gt;&gt;text1;<br />
cout&lt;&lt;endl;</p>
<p>erg=test(text1,text2);<br />
cout&lt;&lt;endl;</p>
<p>if(erg==0)<br />
{<br />
cout&lt;&lt;&quot;Die zu pruefende Zeichenkette ist kein Palindrom.&quot;&lt;&lt;endl;<br />
}</p>
<p>if(erg==1)<br />
{<br />
cout&lt;&lt;&quot;Die zu pruefende Zeichenkette ist ein Palindrom.&quot;&lt;&lt;endl;<br />
}</p>
<p>cout&lt;&lt;endl;<br />
return 0;<br />
}<br />
Das Programm startet zwar aber, den Zweck den es erfüllen soll tut es nicht.<br />
Ich vermute, dass Mein Fehler im oberen Teil der Funktion liegt.<br />
Ich möchte quasi eine Zeichenkette rückwärts in eine andere Variable reinkopieren und anschließend soll getestet werden, ob es das gleiche Wort ist bzw. ein Palindrom.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332365/arrays-funktionen-palindrom-bool</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 10:57:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332365.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Apr 2015 19:31:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arrays Funktionen Palindrom bool on Fri, 24 Apr 2015 19:31:19 GMT]]></title><description><![CDATA[<p>Guten Abend,<br />
ich sitze grade vor folgender Aufgabe:<br />
Schreiben Sie eine Funktion bool Palindrom (char K [ ]), die überprüft, ob eine übergebene Zeichenkette ein Palindrom ist. Der Rückgabewert ist entweder true ider false.</p>
<p>Beispiel:<br />
char Kette[5] = &quot;otto&quot;; //Version Extrem: &quot;ein esel lese nie&quot;<br />
if (Palindrom (Kette) == true)<br />
cout &lt;&lt; Kette &lt;&lt; &quot; ist ein Palindrom&quot;;</p>
<p>(Ein Palindrom ist ein Wort, dass von hinten und vorne gleich gelesen wird Bsp: anna)</p>
<p>Mein bisheriger Programmcode:</p>
<p>Code:<br />
#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>bool test(char q[],char z[])<br />
{<br />
int d=0;<br />
for(int i=7; q[i] != q[0] &amp;&amp; z[d] != '\0'; i--)<br />
{<br />
z[d]=q[i];<br />
d++;<br />
}</p>
<p>int zähler=0;<br />
for(int i=0; q[i]!='\0'&amp;&amp;z[i]!='\0' ;i++)<br />
{</p>
<p>if(z[i]==q[i])<br />
{<br />
zähler=zähler+0;<br />
}<br />
if(z[i]!=q[i])<br />
{<br />
zähler=zähler+1;<br />
}</p>
<p>}<br />
if(zähler&gt;0)<br />
{<br />
return false;<br />
}<br />
if(zähler==0)<br />
{<br />
return true;<br />
}</p>
<p>}</p>
<p>int main()<br />
{<br />
char text1[8];<br />
char text2[8]={};<br />
int erg;</p>
<p>cout&lt;&lt;&quot;Geben sie eine Zeichenkette mit max. 7 Zeichen ein: &quot;&lt;&lt;endl;<br />
cin&gt;&gt;text1;<br />
cout&lt;&lt;endl;</p>
<p>erg=test(text1,text2);<br />
cout&lt;&lt;endl;</p>
<p>if(erg==0)<br />
{<br />
cout&lt;&lt;&quot;Die zu pruefende Zeichenkette ist kein Palindrom.&quot;&lt;&lt;endl;<br />
}</p>
<p>if(erg==1)<br />
{<br />
cout&lt;&lt;&quot;Die zu pruefende Zeichenkette ist ein Palindrom.&quot;&lt;&lt;endl;<br />
}</p>
<p>cout&lt;&lt;endl;<br />
return 0;<br />
}<br />
Das Programm startet zwar aber, den Zweck den es erfüllen soll tut es nicht.<br />
Ich vermute, dass Mein Fehler im oberen Teil der Funktion liegt.<br />
Ich möchte quasi eine Zeichenkette rückwärts in eine andere Variable reinkopieren und anschließend soll getestet werden, ob es das gleiche Wort ist bzw. ein Palindrom.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451484</guid><dc:creator><![CDATA[Hardcor3chip]]></dc:creator><pubDate>Fri, 24 Apr 2015 19:31:19 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays Funktionen Palindrom bool on Fri, 24 Apr 2015 19:37:58 GMT]]></title><description><![CDATA[<p>Warum nicht einfach von vorne nach hinten und gleichzeitig andersrum gehen und dabei auf Gleichheit prüfen? Das kann sogar ein Standard-algo für dich (ggf. effizienter) erledigen, solange du <code>reverse_iterator</code> anwendest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451486</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Fri, 24 Apr 2015 19:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays Funktionen Palindrom bool on Fri, 24 Apr 2015 19:58:14 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Warum nicht einfach von vorne nach hinten und gleichzeitig andersrum gehen und dabei auf Gleichheit prüfen? Das kann sogar ein Standard-algo für dich (ggf. effizienter) erledigen, solange du <code>reverse_iterator</code> anwendest.</p>
</blockquote>
<p>Ich weiß leider nicht was ein reverse_iterator ist, könntest du das genauer erläutern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451491</guid><dc:creator><![CDATA[Hardcor3chip]]></dc:creator><pubDate>Fri, 24 Apr 2015 19:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays Funktionen Palindrom bool on Fri, 24 Apr 2015 21:18:03 GMT]]></title><description><![CDATA[<p>Brauchst du auch nicht, vergiss das.</p>
<p>Ich meinte im vorigen Satz</p>
<pre><code>bool palindrom(char const* p, std::size_t l) {
    for (auto q = p+l-1; p &lt;= q;)
        if (*p++ != *q--)
            return false;

    return true;
}
</code></pre>
<p>(Ungetestet)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451493</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Fri, 24 Apr 2015 21:18:03 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays Funktionen Palindrom bool on Fri, 24 Apr 2015 21:09:06 GMT]]></title><description><![CDATA[<p>Da müsste ein off-by-one Fehler drin sein, q (p+l) zeigt hinter das letzte Zeichen (also auf \0), der erste Vergleich schlägt fehl und die Funktion gibt false zurück. Deshalb muss q = p + l - 1.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451503</guid><dc:creator><![CDATA[patrick246]]></dc:creator><pubDate>Fri, 24 Apr 2015 21:09:06 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays Funktionen Palindrom bool on Fri, 24 Apr 2015 21:36:54 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Brauchst du auch nicht, vergiss das.</p>
<p>Ich meinte im vorigen Satz</p>
<pre><code>bool palindrom(char const* p, std::size_t l) {
    for (auto q = p+l-1; p &lt;= q;)
        if (*p++ != *q--)
            return false;

    return true;
}
</code></pre>
<p>(Ungetestet)</p>
</blockquote>
<p>könntet ihr mir noch erklären wie der Code aufgebaut ist, also der von Arcoth?<br />
Was zum beispiel bedeutet das auto in der for schleife?<br />
Und wieso schreibst du p+1-1, das ist doch dann 0?<br />
und was bedeutet diese Zeile: (char const* p, std::size_t l)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451507</guid><dc:creator><![CDATA[Hardcor3chip]]></dc:creator><pubDate>Fri, 24 Apr 2015 21:36:54 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays Funktionen Palindrom bool on Fri, 24 Apr 2015 21:49:03 GMT]]></title><description><![CDATA[<p>Hardcor3chip schrieb:</p>
<blockquote>
<p>Was zum beispiel bedeutet das auto in der for schleife?</p>
</blockquote>
<p>Automatische Typerkennung. <code>q</code> soll den Typ haben, den das Ergebnis von <code>p+l-1</code> hat.</p>
<blockquote>
<p>Und wieso schreibst du p+1-1, das ist doch dann 0?</p>
</blockquote>
<p>Guck noch mal scharf hin, ob das wirklich da steht.</p>
<blockquote>
<p>und was bedeutet diese Zeile: (char const* p, std::size_t l)</p>
</blockquote>
<p>Was verstehst du da dran nicht? Funktionen kennst du doch offenbar, denn du benutzt selber welche. Die Funktion palindrom hat zwei Argumente, <code>p</code> und <code>l</code> . <code>p</code> hat den Typ <code>char const*</code> , <code>l</code> hat den Typ <code>std::size_t</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451509</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 24 Apr 2015 21:49:03 GMT</pubDate></item></channel></rss>