<?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[externe string Variable in Funktion verändern]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich habe eine Funktion der ich eine Variable des Types string übergebe und in der Funktion ändern möchte und im Anschluss mit dem geänderten Wert ausserhalb der Funtkion weiterarbeiten.</p>
<pre><code class="language-cpp">void Edit(string *Text)
{
string zeile = &quot;Hallo World!&quot;;
Text = zeile.substr(1,5); // hier wird der folgende Fehler erzeugt:
// error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt;' a
}

string Text = &quot;xxx&quot;;
Edit(&amp;Text)
cout &lt;&lt; Text; // sollte nun &quot;allo&quot; sein.
</code></pre>
<p>kann mir da wer bitte weiterhelfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149625/externe-string-variable-in-funktion-verändern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 07:41:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149625.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Jun 2006 20:30:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to externe string Variable in Funktion verändern on Wed, 07 Jun 2006 20:30:10 GMT]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich habe eine Funktion der ich eine Variable des Types string übergebe und in der Funktion ändern möchte und im Anschluss mit dem geänderten Wert ausserhalb der Funtkion weiterarbeiten.</p>
<pre><code class="language-cpp">void Edit(string *Text)
{
string zeile = &quot;Hallo World!&quot;;
Text = zeile.substr(1,5); // hier wird der folgende Fehler erzeugt:
// error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt;' a
}

string Text = &quot;xxx&quot;;
Edit(&amp;Text)
cout &lt;&lt; Text; // sollte nun &quot;allo&quot; sein.
</code></pre>
<p>kann mir da wer bitte weiterhelfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073467</guid><dc:creator><![CDATA[murxle]]></dc:creator><pubDate>Wed, 07 Jun 2006 20:30:10 GMT</pubDate></item><item><title><![CDATA[Reply to externe string Variable in Funktion verändern on Wed, 07 Jun 2006 20:43:55 GMT]]></title><description><![CDATA[<p>Du musst Text vor der Zuweisung noch dereferenzieren, denn im Moment weist du ein string-Objekt einem Pointer auf ein string-Objekt zu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073471</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 07 Jun 2006 20:43:55 GMT</pubDate></item><item><title><![CDATA[Reply to externe string Variable in Funktion verändern on Wed, 07 Jun 2006 20:50:27 GMT]]></title><description><![CDATA[<p>Wie wärs mir:</p>
<pre><code class="language-cpp">string Edit(string *Text)
{
string zeile = &quot;Hallo World!&quot;;
string zeile2 = zeile.substr(1,5); // hier wird der folgende Fehler erzeugt:
// error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt;' a
return zeile2;
}
int main(){
string Text = &quot;xxx&quot;;
cout &lt;&lt; Edit(&amp;Text);; // sollte nun &quot;allo&quot; sein.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1073473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073473</guid><dc:creator><![CDATA[winexec*]]></dc:creator><pubDate>Wed, 07 Jun 2006 20:50:27 GMT</pubDate></item><item><title><![CDATA[Reply to externe string Variable in Funktion verändern on Wed, 07 Jun 2006 20:55:07 GMT]]></title><description><![CDATA[<p>Übergib den String per Referenz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073476</guid><dc:creator><![CDATA[---]]></dc:creator><pubDate>Wed, 07 Jun 2006 20:55:07 GMT</pubDate></item><item><title><![CDATA[Reply to externe string Variable in Funktion verändern on Thu, 08 Jun 2006 06:50:08 GMT]]></title><description><![CDATA[<p>Danke für eure Antworten.</p>
<p>Als Anfänger bin ich jetzt aber etwas verwirrt, vorher dereferenzieren und dann doch als Referenz?</p>
<p>Also soll ich so abändern?</p>
<p>string Text = &quot;xxx&quot;;<br />
string &amp;ref = Text;<br />
Edit(&amp;ref);</p>
<p>??</p>
<p>Der Fehler bleibt aber der selbe bzw ich habs nicht verstanden, wie es gemeint ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073584</guid><dc:creator><![CDATA[murxle]]></dc:creator><pubDate>Thu, 08 Jun 2006 06:50:08 GMT</pubDate></item><item><title><![CDATA[Reply to externe string Variable in Funktion verändern on Thu, 08 Jun 2006 06:56:02 GMT]]></title><description><![CDATA[<p>Nein, du hast das falsch verastanden - du sollst keine Referenz im Hauptprogramm erzeugen:</p>
<p>Möglichkeit a (Zeiger dereferenzieren):</p>
<pre><code class="language-cpp">void Edit(string *Text)
{
  string zeile = &quot;Hallo World!&quot;;
  *Text = zeile.substr(1,5);//mit diesem '*' erhältst du das Objekt hinter dem Zeiger und kannst es bearbeiten
}

string Text = &quot;xxx&quot;;
Edit(&amp;Text);
cout &lt;&lt; Text;
</code></pre>
<p>(Anmerkung: Diese Methode stammt noch aus C-Zeiten und ist dank Referenzen inzwischen überholt)</p>
<p>Möglichkeit b (Übergabe als Referenz):</p>
<pre><code class="language-cpp">[cpp]void Edit(string &amp;Text)//keinen Zeiger übergeben, sondern eine Referenz
{
  string zeile = &quot;Hallo World!&quot;;
  Text = zeile.substr(1,5);
}

string Text = &quot;xxx&quot;;
Edit(Text);//Achtung! Hier entfällt jetzt der Adress-Operator.
cout &lt;&lt; Text;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1073587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073587</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 08 Jun 2006 06:56:02 GMT</pubDate></item><item><title><![CDATA[Reply to externe string Variable in Funktion verändern on Thu, 08 Jun 2006 07:27:21 GMT]]></title><description><![CDATA[<p>Ahhhaaaa.</p>
<p>Vielen Dank! Ich werde mir das kopieren und in Textdatei aufbewahren, damit ich das niemals mehr vergessen. Danke für diese schnelle gute Hilfe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1073603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1073603</guid><dc:creator><![CDATA[murxle]]></dc:creator><pubDate>Thu, 08 Jun 2006 07:27:21 GMT</pubDate></item></channel></rss>