<?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 überschreiben ohne Bibliotheken]]></title><description><![CDATA[<p>Also das Problem wurde sicher schon gepostet und kommt auch von einem sicherlich schon hier bekannte Beispiel. Da ich aber keinen Bock habe mir irgendwo eine fertige Lösung zu kopieren (die ich zugegebenermaßen auch nicht finden konnte) und selbst versucht habe es zu programmieren, stoße ich auch leider auf ganz eigene Probleme.</p>
<p>Ich wäre jedem sehr dankbar über ein bisschen Hilfe, da das Prog bereits Morgen fertig sein muss.</p>
<p>Hier noch einmal die Angabe:</p>
<p>*&quot;Schreiben Sie eine Funktion replace, die als Parameter zwei Zeichenketten erhält, in einer globalen Zeichenkette jedes Auftreten des ersten Parameterwerts sucht und durch den zweiten Parameterwert ersetzt. (verwenden Sie dazu keine Funktionen aus externen Bibliotheken z.B. strlen) Beispiel:</p>
<p>globale Zeichenkette: Noch Ein Einzeller</p>
<p>Parameter 1: Ein</p>
<p>Parameter 2: Mehr</p>
<p>globale Zeichenkette nach Funktionsende: Noch Mehr Mehrzeller&quot;*</p>
<p>Hier ist einmal das was ich bisher habe und ich glaube die Vorgehensweise ist schon die richtige Richtung (wenn auch etwas umständlich) nur passen die Pointer und neu (dynamisch) erstellten Arrays noch überhaupt nicht und würde euch bitten mir vielleicht die ein oder andere Zeile zu nennen, wo nachgebessert gehört und wie ich das am besten lösen könnte.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

char azeichenkette[]={'noch ein einzeller'};

char replace(char *ppara1, char *ppara2){
    int counterpara1=0, anfang=0, ende=0;
    char anewarray[]={};
    for(int i=0; ppara1[i]!='\0'; i++)
        counterpara1++;
    for(int i=0; ::azeichenkette[i]!='\0'; i++){
        if(ppara1[0]==::azeichenkette[i]){
            for(int j=1; ppara1[j]!='\0'; j++){
                if(ppara1[j]==::azeichenkette[i+j]){
                    if(j==counterpara1){//Ich weiß nun, dass Parameter1, an der Stelle i beginnt und bis zur Stelle i+j geht
                        ende=j+i;
                        anfang=i;
                    }
                }
            }
        }
    }
    if(ende&gt;0 &amp;&amp; anfang&gt;0){
        for(int i=ende; ::azeichenkette[i]!='\0'; i++){//Teil ab Ende des gefundenen Wortes aus globalem Array in neues kopieren
            int j=0;
            ::azeichenkette[i]=anewarray[j]; //Weiss nicht ob das so geht, glaube ich muss hier eigentlich mit dynamischen Speicher arbeiten
            j++;
        }
        for(int i=0; i&lt;=ende-i; i++){//Wort aus globalem Array ersetzen
            char *pakette=::&amp;azeichenkette; //Muss die Adresse ändern, aber er will die Notation nicht
            pakette[anfang+i]=ppara1[i];
        }
        for(int i=0; anewarray[i]!='\0'; i++){//Am Ende des ersetzten Wortes, Teil aus neuem Array dranstückeln
            ::azeichenkette[ende+1+i]=anewarray[i];
        }
    }
}
int main(){
    char para1[]={'ein'}, para2[]={'mehr'};
    replace(para1, para2);
    for(int i=0; ::azeichenkette[i]!='\0'; i++)
        cout &lt;&lt; ::azeichenkette[i];
    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
<p>Also das wo ich versuche das alte Array zu überschreiben kann nicht funktionieren im nachhinein gesehen, da müsste ich es erst zerstören und neu (dynamisch) erstellen, die frage ist nur wie <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>ich danke euch schon im voraus für eure hilfe!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/278021/arrays-überschreiben-ohne-bibliotheken</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 06:57:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278021.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Nov 2010 15:26:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 15:26:28 GMT]]></title><description><![CDATA[<p>Also das Problem wurde sicher schon gepostet und kommt auch von einem sicherlich schon hier bekannte Beispiel. Da ich aber keinen Bock habe mir irgendwo eine fertige Lösung zu kopieren (die ich zugegebenermaßen auch nicht finden konnte) und selbst versucht habe es zu programmieren, stoße ich auch leider auf ganz eigene Probleme.</p>
<p>Ich wäre jedem sehr dankbar über ein bisschen Hilfe, da das Prog bereits Morgen fertig sein muss.</p>
<p>Hier noch einmal die Angabe:</p>
<p>*&quot;Schreiben Sie eine Funktion replace, die als Parameter zwei Zeichenketten erhält, in einer globalen Zeichenkette jedes Auftreten des ersten Parameterwerts sucht und durch den zweiten Parameterwert ersetzt. (verwenden Sie dazu keine Funktionen aus externen Bibliotheken z.B. strlen) Beispiel:</p>
<p>globale Zeichenkette: Noch Ein Einzeller</p>
<p>Parameter 1: Ein</p>
<p>Parameter 2: Mehr</p>
<p>globale Zeichenkette nach Funktionsende: Noch Mehr Mehrzeller&quot;*</p>
<p>Hier ist einmal das was ich bisher habe und ich glaube die Vorgehensweise ist schon die richtige Richtung (wenn auch etwas umständlich) nur passen die Pointer und neu (dynamisch) erstellten Arrays noch überhaupt nicht und würde euch bitten mir vielleicht die ein oder andere Zeile zu nennen, wo nachgebessert gehört und wie ich das am besten lösen könnte.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

char azeichenkette[]={'noch ein einzeller'};

char replace(char *ppara1, char *ppara2){
    int counterpara1=0, anfang=0, ende=0;
    char anewarray[]={};
    for(int i=0; ppara1[i]!='\0'; i++)
        counterpara1++;
    for(int i=0; ::azeichenkette[i]!='\0'; i++){
        if(ppara1[0]==::azeichenkette[i]){
            for(int j=1; ppara1[j]!='\0'; j++){
                if(ppara1[j]==::azeichenkette[i+j]){
                    if(j==counterpara1){//Ich weiß nun, dass Parameter1, an der Stelle i beginnt und bis zur Stelle i+j geht
                        ende=j+i;
                        anfang=i;
                    }
                }
            }
        }
    }
    if(ende&gt;0 &amp;&amp; anfang&gt;0){
        for(int i=ende; ::azeichenkette[i]!='\0'; i++){//Teil ab Ende des gefundenen Wortes aus globalem Array in neues kopieren
            int j=0;
            ::azeichenkette[i]=anewarray[j]; //Weiss nicht ob das so geht, glaube ich muss hier eigentlich mit dynamischen Speicher arbeiten
            j++;
        }
        for(int i=0; i&lt;=ende-i; i++){//Wort aus globalem Array ersetzen
            char *pakette=::&amp;azeichenkette; //Muss die Adresse ändern, aber er will die Notation nicht
            pakette[anfang+i]=ppara1[i];
        }
        for(int i=0; anewarray[i]!='\0'; i++){//Am Ende des ersetzten Wortes, Teil aus neuem Array dranstückeln
            ::azeichenkette[ende+1+i]=anewarray[i];
        }
    }
}
int main(){
    char para1[]={'ein'}, para2[]={'mehr'};
    replace(para1, para2);
    for(int i=0; ::azeichenkette[i]!='\0'; i++)
        cout &lt;&lt; ::azeichenkette[i];
    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
<p>Also das wo ich versuche das alte Array zu überschreiben kann nicht funktionieren im nachhinein gesehen, da müsste ich es erst zerstören und neu (dynamisch) erstellen, die frage ist nur wie <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>ich danke euch schon im voraus für eure hilfe!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987081</guid><dc:creator><![CDATA[Floeee]]></dc:creator><pubDate>Sun, 28 Nov 2010 15:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 15:30:30 GMT]]></title><description><![CDATA[<p>Ich sehe hier nur C Code (kein C++), falsches Unterforum.</p>
<p>mfg, René~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987082</guid><dc:creator><![CDATA[NewSoftzzz]]></dc:creator><pubDate>Sun, 28 Nov 2010 15:30:30 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 15:38:17 GMT]]></title><description><![CDATA[<p>Floeee schrieb:</p>
<blockquote>
<p>Also das wo ich versuche das alte Array zu überschreiben kann nicht funktionieren im nachhinein gesehen, da müsste ich es erst zerstören und neu (dynamisch) erstellen, die frage ist nur wie <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
</blockquote>
<p>Du musst in deinem globalen char[] &quot;noch ein einzeller&quot; und nicht 'noch ein einzeller' schreiben.</p>
<p>Zu deiner Frage:<br />
Dynamischen Speicher allozieren geht mit</p>
<pre><code class="language-cpp">char *new_string = calloc(NeueStringGröße, sizeof(char));
</code></pre>
<p>Dadurch, dass du calloc verwendest, wird der allozierte Speicher gleich mit Nullen vollgeschrieben.<br />
Du kannst auch malloc(NeueStringGröße) verwenden, dann musst du das terminierende '\0' allerdings selbst setzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987086</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sun, 28 Nov 2010 15:38:17 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 16:31:10 GMT]]></title><description><![CDATA[<p>NewSoftzzz schrieb:</p>
<blockquote>
<p>Ich sehe hier nur C Code (kein C++), falsches Unterforum.</p>
</blockquote>
<p><code>#include &lt;iostream&gt;</code> , <code>using namespace std;</code> und der Scope-Operator sind eindeutig C++.</p>
<p>wxSkip schrieb:</p>
<blockquote>
<p>Zu deiner Frage:<br />
Dynamischen Speicher allozieren geht mit</p>
<pre><code class="language-cpp">char *new_string = calloc(NeueStringGröße, sizeof(char));
</code></pre>
</blockquote>
<p>Nein. Nimm in C++ <code>new[]</code> , falls du überhaupt dynamischen Speicher brauchst. Versuche diesen aber soweit möglich zu vermeiden.</p>
<pre><code class="language-cpp">char* new_string = new char[size];
// ...
delete[] new_string;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1987103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987103</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 28 Nov 2010 16:31:10 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 17:11:51 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Nein. Nimm in C++ <code>new[]</code> , falls du überhaupt dynamischen Speicher brauchst.</p>
</blockquote>
<p>Klar, dann kann er aber auch gleich std::string benutzen <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="😉"
    /><br />
Das muss er selbst aussuchen, ob er C-Funktionen verwenden soll oder ob er auch eine Prise C++ (außer dem Scope-Operator und std::cout) in seine Funktion einbauen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987115</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sun, 28 Nov 2010 17:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 17:30:34 GMT]]></title><description><![CDATA[<p>wxSkip schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Nein. Nimm in C++ <code>new[]</code> , falls du überhaupt dynamischen Speicher brauchst.</p>
</blockquote>
<p>Klar, dann kann er aber auch gleich std::string benutzen <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>Nicht, wenn die Anforderung &quot;verwenden Sie dazu keine Funktionen aus externen Bibliotheken z.B. strlen&quot; lautet.</p>
<p>wxSkip schrieb:</p>
<blockquote>
<p>Das muss er selbst aussuchen, ob er C-Funktionen verwenden soll oder ob er auch eine Prise C++ (außer dem Scope-Operator und std::cout) in seine Funktion einbauen will.</p>
</blockquote>
<p>Wieso sollte man hier <code>calloc()</code> verwenden, wenn man <code>new[]</code> hat? Das ist nur fehleranfälliger und weniger komfortabel. Du hast zum Beispiel schon in deinem Minimalbeispiel einen Fehler gemacht (Cast nach <code>char*</code> vergessen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987123</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 28 Nov 2010 17:30:34 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 17:35:51 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>wxSkip schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Nein. Nimm in C++ <code>new[]</code> , falls du überhaupt dynamischen Speicher brauchst.</p>
</blockquote>
<p>Klar, dann kann er aber auch gleich std::string benutzen <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>Nicht, wenn die Anforderung &quot;verwenden Sie dazu keine Funktionen aus externen Bibliotheken z.B. strlen&quot; lautet.</p>
</blockquote>
<p>Gut, da fallen natürlich auch malloc()/calloc() drunter. Wenn new[] da nicht dazuzählt, ist das natürlich die beste Lösung. Ansonsten muss man halt ein relativ langes Ersatzarray auf den Stack legen.</p>
<p>Wobei mir gerade einfällt, dass realloc() in so einem Fall vielleicht geschickt wäre (str = realloc(str, Länge_des_bisherigen_strings + Länge_des_Replacestrings - Länge_des_Suchstrings)).</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>wxSkip schrieb:</p>
<blockquote>
<p>Das muss er selbst aussuchen, ob er C-Funktionen verwenden soll oder ob er auch eine Prise C++ (außer dem Scope-Operator und std::cout) in seine Funktion einbauen will.</p>
</blockquote>
<p>Wieso sollte man hier <code>calloc()</code> verwenden, wenn man <code>new[]</code> hat? Das ist nur fehleranfälliger und weniger komfortabel. Du hast zum Beispiel schon in deinem Minimalbeispiel einen Fehler gemacht (Cast nach <code>char*</code> vergessen).</p>
</blockquote>
<p>Stimmt, ich hab gedacht, er will das mit nem C-Compiler kompilieren und hab deshalb extra den Ratschlag in der FAQ berücksichtigt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> . Dabei habe ich die C++-Sachen natürlich glatt übersehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987128</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sun, 28 Nov 2010 17:35:51 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 18:04:12 GMT]]></title><description><![CDATA[<p>also das überrascht mich doch sehr, dass ich hier so viele schnelle antworten erhalten habe</p>
<p>vielen dank an alle!</p>
<p>also dynamischen speicher kann ich nun anscheinend auslassen. ich initialisiere einfach das globale array mit ein paar mehr stellen und gut ist die sache</p>
<p>nun gehts aber dann um den code selbst, der passt ja noch nciht ganz, aber wo könnten da überall fehler versteckt sein? bin heut leider schon etwas gaga und seh gar nichts mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>ausbessern kann ich sie dann eh selbst, aber einfach mal das prinzip das ich hier verwende sollte zumindest passen, weil ich wüsste nicht warum es nicht passen sollte</p>
<p>muss ich nun bei stringketten hochkomma ' oder anführungszeiten &quot; machen, ist das nicht egal?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987142</guid><dc:creator><![CDATA[Floeee]]></dc:creator><pubDate>Sun, 28 Nov 2010 18:04:12 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 18:13:06 GMT]]></title><description><![CDATA[<p>Es passt einiges nicht, das Ganze wird ja nicht einmal kompiliert.</p>
<p>Ich sehe aber, du versuchst, alles in einer Funktion unterzubringen. Sinnvoller wäre es aber, Funktionen für die Teilprobleme zu schreiben.<br />
Ein paar mögliche Prototypen:</p>
<pre><code class="language-cpp">size_t mystrlen(const char* in); // liefert die Länge
// find liefert einen Index, wenn what gefunden wurde, sonst SIZE_MAX
// die Schleife sollte bis inlen-whatlen durchlaufen werden
size_t find(const char* in, const char* what, size_t off = 0);
// copy kopiert in[off] bis if[off+len] nach out, die aufrufende Funktion muss out freigeben
void copy(const char* in, char*&amp; out, size_t off, size_t len);
// searchandreplace ist die in main aufzurufende Funktion.
bool searchandreplace(const char* what, const char* rep);
</code></pre>
<p>Ein Aufteilen in Teilprobleme macht es normalerweise einfacher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987147</guid><dc:creator><![CDATA[Vicious Falcon]]></dc:creator><pubDate>Sun, 28 Nov 2010 18:13:06 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 18:37:44 GMT]]></title><description><![CDATA[<p>ja dass es noch fehler hat ist mir klar, deswegen frag ich ja hier</p>
<p>und es geht nur darum ob meine grundüberlegungen richtig sind, dass es einfacher geht nehm ich mal sehr stark an, bin ja auch noch ein noob in c++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987157</guid><dc:creator><![CDATA[Floeee]]></dc:creator><pubDate>Sun, 28 Nov 2010 18:37:44 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 19:07:11 GMT]]></title><description><![CDATA[<p>Also ich hab das ganze nun etwas umgeschrieben und einige fehler gefunden</p>
<p>meine 2 großen probleme sind nun, dass er mir immer &quot;r&quot; ausgibt und dass er ja nur das erste wort das er findet austauscht und dann nix mehr</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

char azeichenkette[50]={'noch ein einzeller'};

char replace(char *ppara1, char *ppara2){
    int counterpara1=0, anfang=0, ende=0, abbruch=0;
    for(int i=0; ppara1[i]!='\0'; i++) //Zählt wieviele Stellen im auszutauschenden Paramter sind
        counterpara1++;
    for(int i=0; ::azeichenkette[i]!='\0' || abbruch==1; i++){
        if(ppara1[0]==::azeichenkette[i]){
            for(int j=1; ppara1[j]!='\0'; j++){
                if(ppara1[j]==::azeichenkette[i+j]){
                    if(j==counterpara1){//Ich weiß nun, dass Parameter1, an der Stelle i beginnt und bis zur Stelle i+j geht
                        ende=j+i;
                        anfang=i;
                        abbruch=1;
                    }
                }
            }
        }
    }
    if(ende&gt;0 &amp;&amp; anfang&gt;0){
        int restcounter=0;
        for(int i=0; ::azeichenkette[ende+i]!='\0'; i++)
            restcounter++;
        char anewarray[restcounter]={};
        int j=0;
        for(int i=ende+1; ::azeichenkette[i]!='\0'; i++){//Teil ab Ende des gefundenen Wortes aus globalem Array in neues kopieren
            anewarray[j]=::azeichenkette[i]; //Weiss nicht ob das so geht, glaube ich muss hier eigentlich mit dynamischen Speicher arbeiten
            j++;
        }
        for(int i=0; ppara2[i]!='\0'; i++){//Wort aus globalem Array ersetzen
            ::azeichenkette[anfang+i]=ppara2[i];
        }
        for(int i=0; anewarray[i]!='\0'; i++){//Am Ende des ersetzten Wortes, Teil aus neuem Array dranstückeln
            ::azeichenkette[ende+1+i]=anewarray[i];
        }
    }
}
int main(){
    char para1[]={'ein'}, para2[]={'mehr'};
    replace(para1, para2);
    for(int i=0; ::azeichenkette[i]!='\0'; i++)
        cout &lt;&lt; ::azeichenkette[i];
    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1987170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987170</guid><dc:creator><![CDATA[Floeee]]></dc:creator><pubDate>Sun, 28 Nov 2010 19:07:11 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 19:08:05 GMT]]></title><description><![CDATA[<p>wxSkip schrieb:</p>
<blockquote>
<p>Du musst in deinem globalen char[] &quot;noch ein einzeller&quot; und nicht 'noch ein einzeller' schreiben.</p>
</blockquote>
<p>(gilt natürlich auch für die anderen Strings)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987172</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sun, 28 Nov 2010 19:08:05 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 20:26:19 GMT]]></title><description><![CDATA[<p>ok danke<br />
das war einer meiner hauptfehler, nach dem einbau vieler couts bin ich dann draufgekommen und natürlich noch auf viele andre fehler</p>
<p>bin nun fertig und hier der endgültige code, falls es noch wen interessiert:<br />
(es ist eine bedingung bei uns, die programme beliebig oft ausführen zu können, aber nicht eine cin eingabe zu vollziehen - glaub ich zumindest)</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

char azeichenkette[50]={&quot;noch ein einzeller&quot;};

char replace(char *ppara1, char *ppara2){
    int counterpara1=0, counterpara2=0, anfang=0, ende=0, abbruch=0;
    for(int i=0; ppara1[i]!='\0'; i++) //Zählt wieviele Stellen im auszutauschenden Paramter sind
        counterpara1++;
    for(int i=0; ppara2[i]!='\0'; i++)
        counterpara2++;
    counterpara1--;
    for(int i=0; ::azeichenkette[i]!='\0' &amp;&amp; abbruch==0; i++){
        if(ppara1[0]==::azeichenkette[i]){
            for(int j=1; ppara1[j]!='\0' &amp;&amp; abbruch==0; j++){
                if(ppara1[j]==::azeichenkette[i+j]){
                    if(j==counterpara1){//Ich weiß nun, dass Parameter1, an der Stelle i beginnt und bis zur Stelle i+j geht
                        ende=j+i;
                        anfang=i;
                        abbruch=1;
                    }
                }
            }
        }
    }
    if(abbruch==0)
        return 1;
    if(ende&gt;0 &amp;&amp; anfang&gt;0){
        char anewarray[50]={};
        int j=0;
        for(int i=ende+1; ::azeichenkette[i]!='\0'; i++){//Teil ab Ende des gefundenen Wortes aus globalem Array in neues kopieren
            anewarray[j]=::azeichenkette[i];
            j++;
        }
        for(int i=0; ppara2[i]!='\0'; i++){//Wort aus globalem Array ersetzen
            ::azeichenkette[anfang+i]=ppara2[i];
        }
        for(int i=0; anewarray[i]!='\0'; i++){//Am Ende des ersetzten Wortes, Teil aus neuem Array dranstückeln
            ::azeichenkette[anfang+counterpara2+i]=anewarray[i];
        }
    }
return replace(ppara1, ppara2);
}
int main(){
    char bedingung='n', start='n';
    do{
        char para1[]={&quot;ein&quot;}, para2[]={&quot;mehr&quot;}; 
        cout &lt;&lt; &quot;Dieses Programm soll aus der globalen Variable: noch ein einzeller, den Parameter ein finden und durch den Paramter mehr ersetzen.&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;Wollen sie das Programm starten? j/n &quot;;
        cin &gt;&gt; start;
        if(start='j')
            replace(para1, para2);//Uns wurde in den Übungsstunden erklärt, dass beim Schreiben einer Funktion, nur eine Übergabe von Werten in egal welcher Form reicht, deswegen keine cin Eingabe
        //Sollte in Zukunft dennoch eine Eingabe erwünscht sein, bitte im Kommentar vermerken
        for(int i=0; ::azeichenkette[i]!='\0'; i++)
            cout &lt;&lt; ::azeichenkette[i];
        cout &lt;&lt; endl &lt;&lt; &quot;Wollen sie das Programm noch einmal ausfuehren? j/n &quot;;
        cin &gt;&gt; bedingung;
    }while(bedingung=='j');
    return 0; 
}
</code></pre>
<p>danke nochmal an alle die hier ihr bestes gegeben haben <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/1987207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987207</guid><dc:creator><![CDATA[Floeee]]></dc:creator><pubDate>Sun, 28 Nov 2010 20:26:19 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sun, 28 Nov 2010 21:17:21 GMT]]></title><description><![CDATA[<p>Ich finde so nervige Aufgaben ja teilweise kontraproduktiv. Aber ich kann dir versichern das REALE Programmierung im Berufsleben WESENTLICH weniger ätzend ist als dein Beispiel, macht wesentlich mehr Spaß.</p>
<p>PS: Außer man muss Code von inkompetenten Vorgängern debuggen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>mfg, René~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987227</guid><dc:creator><![CDATA[NewSoftzzz]]></dc:creator><pubDate>Sun, 28 Nov 2010 21:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Mon, 29 Nov 2010 00:00:50 GMT]]></title><description><![CDATA[<p>wenn nicht so ein zeitdruck wäre, fänd ichs ja lustig ^^ ist einfach so viel zu tun atm</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987278</guid><dc:creator><![CDATA[Floeee]]></dc:creator><pubDate>Mon, 29 Nov 2010 00:00:50 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sat, 04 Jun 2011 15:45:49 GMT]]></title><description><![CDATA[<p>*nuked*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073316</guid><dc:creator><![CDATA[Floeee]]></dc:creator><pubDate>Sat, 04 Jun 2011 15:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays überschreiben ohne Bibliotheken on Sat, 04 Jun 2011 15:59:52 GMT]]></title><description><![CDATA[<p>Falls es tatsächlich ein Problem gibt, dass zwei den selben Account benutzen, könnt ihr es in der <a href="http://www.c-plusplus.net/forum/f39" rel="nofollow">Forentechnik</a> posten.</p>
<p>(Da stand vorher was)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073321</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 04 Jun 2011 15:59:52 GMT</pubDate></item></channel></rss>