<?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[Anfänger-Probleme mit Strings [beantwortet]]]></title><description><![CDATA[<p>Ich mal wieder, hallo.<br />
Falls mich der AntiSpambot noch nicht filtert, hier meine Frage:<br />
Ich möchte eine Funktion schreiben, die einen Text auf sich wiederholende Zeichenfolgen untersucht. Der Text sei in einem String abgelegt.<br />
Dazu kopiert die Funktion immer 'len'-viele Zeichen aus dem String und überprüft ab jener Stelle den restlichen Text, ob diese Zeichenfolge nochmal vorkommt - bei einem Treffer soll die Funktion den enstprechenden String und den Abstand der beiden Strings ausgeben.<br />
Vermutlich ist meine Lösung die ineffektivste, die möglich war, aber ich wollte sie erst mal zum Laufen bringen.<br />
Aber leider läuft sie nicht. Sie gibt weder die Treffer-Strings noch sonst was aus. Und ich finde mal einfach wieder meinen Fehler nicht.<br />
Ein dickes Danke an jeden, der mir hilft:</p>
<pre><code class="language-cpp">void distance(string &amp; text, int len)
{
    int i, j, k;
    string part, comp;

    for(j=0; j &lt; text.length() - len; j++)  {               //durchläuft den Text und legt einen Vergleichsstring der Länge 'len' an
        part.clear(); comp.clear();                         //leere beide Strings, um sie dann neu zu beschreiben
        for(i=j; i &lt; j + len; i++)
            part += text[i];

        for(k = j + len; k &lt; text.length() - len; k++)    { //durchläuft ab dem Vergleichsstring den restlichen Text bis zum ersten Treffer
            for(i = k; i &lt; len; i++)
                comp += text[i];

            if(comp == part)    {                           //beim ersten Treffer gebe String und den Abstand aus
                cout &lt;&lt; comp &lt;&lt; &quot;: &quot; &lt;&lt; (k-j) &lt;&lt; endl;
                break;
            }
        }
    }
}
</code></pre>
<p>Vielen lieben Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273400/anfänger-probleme-mit-strings-beantwortet</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 05:57:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273400.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Sep 2010 15:47:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfänger-Probleme mit Strings [beantwortet] on Mon, 06 Sep 2010 18:17:55 GMT]]></title><description><![CDATA[<p>Ich mal wieder, hallo.<br />
Falls mich der AntiSpambot noch nicht filtert, hier meine Frage:<br />
Ich möchte eine Funktion schreiben, die einen Text auf sich wiederholende Zeichenfolgen untersucht. Der Text sei in einem String abgelegt.<br />
Dazu kopiert die Funktion immer 'len'-viele Zeichen aus dem String und überprüft ab jener Stelle den restlichen Text, ob diese Zeichenfolge nochmal vorkommt - bei einem Treffer soll die Funktion den enstprechenden String und den Abstand der beiden Strings ausgeben.<br />
Vermutlich ist meine Lösung die ineffektivste, die möglich war, aber ich wollte sie erst mal zum Laufen bringen.<br />
Aber leider läuft sie nicht. Sie gibt weder die Treffer-Strings noch sonst was aus. Und ich finde mal einfach wieder meinen Fehler nicht.<br />
Ein dickes Danke an jeden, der mir hilft:</p>
<pre><code class="language-cpp">void distance(string &amp; text, int len)
{
    int i, j, k;
    string part, comp;

    for(j=0; j &lt; text.length() - len; j++)  {               //durchläuft den Text und legt einen Vergleichsstring der Länge 'len' an
        part.clear(); comp.clear();                         //leere beide Strings, um sie dann neu zu beschreiben
        for(i=j; i &lt; j + len; i++)
            part += text[i];

        for(k = j + len; k &lt; text.length() - len; k++)    { //durchläuft ab dem Vergleichsstring den restlichen Text bis zum ersten Treffer
            for(i = k; i &lt; len; i++)
                comp += text[i];

            if(comp == part)    {                           //beim ersten Treffer gebe String und den Abstand aus
                cout &lt;&lt; comp &lt;&lt; &quot;: &quot; &lt;&lt; (k-j) &lt;&lt; endl;
                break;
            }
        }
    }
}
</code></pre>
<p>Vielen lieben Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1948875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948875</guid><dc:creator><![CDATA[Tonikum]]></dc:creator><pubDate>Mon, 06 Sep 2010 18:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger-Probleme mit Strings [beantwortet] on Mon, 06 Sep 2010 15:56:22 GMT]]></title><description><![CDATA[<p>Schau mal nach den string Methoden substr() und find().<br />
Um deine Lösung zu untersuchen, benutze einen Debugger. Da kannst du ganz einfach sehen was passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1948880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948880</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Mon, 06 Sep 2010 15:56:22 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger-Probleme mit Strings [beantwortet] on Mon, 06 Sep 2010 16:13:13 GMT]]></title><description><![CDATA[<p>Mensch, das ist ja genau das was ich gebraucht hab - vielen Dank! <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="🙂"
    /><br />
Das probier ich gleich mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1948885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948885</guid><dc:creator><![CDATA[Tonikum]]></dc:creator><pubDate>Mon, 06 Sep 2010 16:13:13 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger-Probleme mit Strings [beantwortet] on Mon, 06 Sep 2010 18:17:44 GMT]]></title><description><![CDATA[<p>Hat geklappt, vielen Dank! <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="🙂"
    /> <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="🙂"
    /> <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/1948932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1948932</guid><dc:creator><![CDATA[Tonikum]]></dc:creator><pubDate>Mon, 06 Sep 2010 18:17:44 GMT</pubDate></item></channel></rss>