<?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[Rekursive Funktion: Cstring rückwärts ausgeben]]></title><description><![CDATA[<p>Moin,</p>
<p>ich versuche eine rekursive Funktion zu schreiben, die mir einen CString rueckwaerts ausgibt. Als Parameter darf ich nur die Adresse des ersten Feldes benutzen. Mein Code funkioniert nicht. Habt Ihr einen Tipp für mich?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;conio.h&gt;
using namespace std;

void rekvorwaerts(char *feld);

int main()
{
    char feld[10]=&quot;Hallo 59!&quot;;
    rekvorwaerts(&amp;feld[0]);
    getch();
}

void rekvorwaerts(char *feld)
{
     if(strlen(feld)&gt;0)
         rekvorwaerts(&amp;feld[0]);
     cout&lt;&lt;feld[strlen(feld)-1];
     feld[strlen(feld)-1]='\0';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/263324/rekursive-funktion-cstring-rückwärts-ausgeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 22:42:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263324.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Mar 2010 21:24:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:24:17 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>ich versuche eine rekursive Funktion zu schreiben, die mir einen CString rueckwaerts ausgibt. Als Parameter darf ich nur die Adresse des ersten Feldes benutzen. Mein Code funkioniert nicht. Habt Ihr einen Tipp für mich?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;conio.h&gt;
using namespace std;

void rekvorwaerts(char *feld);

int main()
{
    char feld[10]=&quot;Hallo 59!&quot;;
    rekvorwaerts(&amp;feld[0]);
    getch();
}

void rekvorwaerts(char *feld)
{
     if(strlen(feld)&gt;0)
         rekvorwaerts(&amp;feld[0]);
     cout&lt;&lt;feld[strlen(feld)-1];
     feld[strlen(feld)-1]='\0';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1871078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871078</guid><dc:creator><![CDATA[Phisherman]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:28:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void rekvorwaerts(char *feld)
{
     if(strlen(feld)&gt;0)
         rekvorwaerts(&amp;feld[1]);
     cout&lt;&lt; feld[0];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1871081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871081</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:28:43 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:38:27 GMT]]></title><description><![CDATA[<p>Vielen Dank.<br />
Aber wieso muss ich die Adresse des 1.Index benutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871086</guid><dc:creator><![CDATA[Phisherman]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:38:27 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:42:30 GMT]]></title><description><![CDATA[<p>Weil es das nächste zeichen ist. Ansonsten hast du da eine Endlosschleife und irgendwann läuft dein Stack über und die Anwendung crasht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871087</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:46:06 GMT]]></title><description><![CDATA[<p>Heißt das &amp;feld[1] in dem Fall soviel wie &quot;um 1 erhöhen&quot;?<br />
Und wieso funktioniert die Bedingung strlen(feld)?<br />
Die CStringlaenge wird doch nciht verändert, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871091</guid><dc:creator><![CDATA[Phisherman]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:46:06 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:48:29 GMT]]></title><description><![CDATA[<p>Es gibt noch eine andere Möglichkeit:</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;iostream&gt;
#include &lt;conio.h&gt;

void print_rev( char * str )
{
   if( str ){
      std::reverse( str, str + strlen(str));
      std::cout &lt;&lt; str;
   }
}

int main(){
    char str[] = &quot;Hallo 59!&quot;;
    print_rev( str );
    getch();
}
</code></pre>
<p>Diese wäre sogar schneller bei größeren strings weil du nicht jedes mal strlen benutzen musst. Sondern es nur einmal verwendet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871092</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:48:29 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:51:15 GMT]]></title><description><![CDATA[<p>Phisherman schrieb:</p>
<blockquote>
<p>Heißt das &amp;feld[1] in dem Fall soviel wie &quot;um 1 erhöhen&quot;?<br />
Und wieso funktioniert die Bedingung strlen(feld)?<br />
Die CStringlaenge wird doch nciht verändert, oder?</p>
</blockquote>
<p>Nein aber die übergebene Addresse des strings zeigt auf das nächste zeichen und strlen zählt nur von der addresse an die du übergibst bis es ein '\0' findet.</p>
<p>1. Durchlauf:<br />
[abcdefg]<br />
2. Durchlauf:<br />
[a][bcdefg]<br />
3. Durchlauf<br />
[ab][cdefg]<br />
...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871093</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:51:15 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:50:21 GMT]]></title><description><![CDATA[<p>sieht nach 'ner Hausaufgabe aus. Die Lösung hätte ich so schnell nicht verraten. Aber da eine Lösung hier ja schon steht, gebe ich mal meinen Senf dazu: Ich würde mir aber das strlen sparen und &amp;p[1] kann man auch durch p+1 ersetzen...</p>
<pre><code class="language-cpp">void fuckyeah(char const* p)
{
  if (*p) {
    fuckyeah(p+1);
    std::cout &lt;&lt; *p;
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1871094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871094</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:52:36 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>sieht nach 'ner Hausaufgabe aus. Die Lösung hätte ich so schnell nicht verraten. Aber da eine Lösung hier ja schon steht, gebe ich mal meinen Senf dazu: Ich würde mir aber das strlen sparen und &amp;p[1] kann man auch durch p+1 ersetzen...</p>
</blockquote>
<p>Nun ja ich verstehe zwar das es eine Hausaufgabe ist aber er hat wenigstens schon mal etwas versucht. Ausserdem versucht er es ja jetzt noch zu verstehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871096</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:52:36 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:54:18 GMT]]></title><description><![CDATA[<p>Achso! OK, jetzt hab ich's verstanden. Die andere Methode schaut in meinen Augen kryptisch aus. Sowas habe ich noch nie gemacht. Außerdem wollte ich doch eine rekursive Funktion?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871098</guid><dc:creator><![CDATA[Phisherman]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:54:18 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 21:57:37 GMT]]></title><description><![CDATA[<p>Nein, es ist keine Hausaufgabe. Sowas gibt's bei uns nicht. Wir bearbeiten alle Aufgaben im Unterricht. Übrigens ist die Aufgabe als schwierig deklariert und muss nicht einmal gelöst werden. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1871099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871099</guid><dc:creator><![CDATA[Phisherman]]></dc:creator><pubDate>Thu, 18 Mar 2010 21:57:37 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion: Cstring rückwärts ausgeben on Thu, 18 Mar 2010 22:00:08 GMT]]></title><description><![CDATA[<p>Phisherman schrieb:</p>
<blockquote>
<p>Nein, es ist keine Hausaufgabe. Sowas gibt's bei uns nicht. Wir bearbeiten alle Aufgaben im Unterricht. Übrigens ist die Aufgabe als schwierig deklariert und muss nicht einmal gelöst werden. <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>
</blockquote>
<p>Die Version von krümelkacker ist schon besser. Sogar besser als meine nicht rekursive <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="😉"
    /> (Nur das da nicht auf NULL-Zeiger geachtet wird)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871101</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Thu, 18 Mar 2010 22:00:08 GMT</pubDate></item></channel></rss>