<?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[const char* verändern?]]></title><description><![CDATA[<p>Hallo, mich macht die Frage jetzt lange genug fertig. <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>
<p>Ich habe eine Vorlage, soll einen char*-String in einer Funktion verändern. Vorgegeben ist, dass sie constant ist.</p>
<p>Ich dachte mir dabei, konstante kann und sollte man net ändern. Also hab ich das wie folgt gelöst.</p>
<pre><code>int main()
{
...

const char* bla = &quot;hallo&quot;;
aendere(bla);
...

}
</code></pre>
<p>(eine Funktion soll das ding verändern, die sieht so aus;)</p>
<pre><code>void aendere( const char*&amp; original)
{
char* copy = 0;
copy = new char[strlen(original)];  
strcpy(copy, original);

... weitere Änderungen an copy ...

original = copy;

}
</code></pre>
<p>Wichtig zu wissen ist, dass nur einzelne Elemente des Strings geändert werden, die länge verändert sich nicht. Jetzt ist mir natürlich klar, dass es ein Memory-Leak gibt. Habt ihr also eine andere Möglichkeit, den const char*-String zu verändern? Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310972/const-char-verändern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 05:35:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310972.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Nov 2012 16:55:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 16:55:38 GMT]]></title><description><![CDATA[<p>Hallo, mich macht die Frage jetzt lange genug fertig. <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>
<p>Ich habe eine Vorlage, soll einen char*-String in einer Funktion verändern. Vorgegeben ist, dass sie constant ist.</p>
<p>Ich dachte mir dabei, konstante kann und sollte man net ändern. Also hab ich das wie folgt gelöst.</p>
<pre><code>int main()
{
...

const char* bla = &quot;hallo&quot;;
aendere(bla);
...

}
</code></pre>
<p>(eine Funktion soll das ding verändern, die sieht so aus;)</p>
<pre><code>void aendere( const char*&amp; original)
{
char* copy = 0;
copy = new char[strlen(original)];  
strcpy(copy, original);

... weitere Änderungen an copy ...

original = copy;

}
</code></pre>
<p>Wichtig zu wissen ist, dass nur einzelne Elemente des Strings geändert werden, die länge verändert sich nicht. Jetzt ist mir natürlich klar, dass es ein Memory-Leak gibt. Habt ihr also eine andere Möglichkeit, den const char*-String zu verändern? Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273938</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 16:55:38 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 16:59:26 GMT]]></title><description><![CDATA[<p>Nenn mal die genaue Aufgabenstellung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273940</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 23 Nov 2012 16:59:26 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 17:08:14 GMT]]></title><description><![CDATA[<p>Schon mal ein Daumen hoch für</p>
<blockquote>
<p>Ich dachte mir dabei, konstante kann und sollte man net ändern</p>
</blockquote>
<p><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>
<p>Da stimmt aber irgendwas nicht.<br />
Es ist UB (und damit &quot;verboten&quot;), ein String-Literal im Speicher zu verändern, das weißt du ja bereits.</p>
<blockquote>
<p>Vorgegeben ist, dass sie constant ist.</p>
</blockquote>
<p>&quot;sie&quot;?</p>
<ul>
<li>Meinst du die Funktion?<br />
cv-qualifier können nur einige Member-Funktionen haben.</li>
<li>Bezieht sich &quot;sie&quot; aber auf den String, dann ist das erstens falsche Grammatik und außerdem widerspricht sich das mit dem ersten Satz der Aufgabendefinition (es soll ein Zeiger vom Typ <code>char*</code> sein).</li>
</ul>
<p>Irgendwie habe ich das Gefühl, entweder du hast die Aufgabe falsch zitiert (bzw. wiedergegeben) oder derjenige der sie verfasst hat hat keine Ahnung von Const-Correctness.<br />
Deswegen schließe ich mich SeppJ an und sage:</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Nenn mal die genaue Aufgabenstellung.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2273942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273942</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 23 Nov 2012 17:08:14 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 17:27:28 GMT]]></title><description><![CDATA[<p>Ungerne, da ich sie hier nicht weitergeben möchte. <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>
<p>Also Vorgabe:</p>
<p>const char* beispiel=&quot;bla bla bla&quot;;</p>
<p>also constanter inhalt, variabler zeiger. (Mit &quot;Sie&quot; meinte ich den String, kommt da immer durcheinander. Er ist konstant)</p>
<p>Aufgabe: Funktion soll den String verändern, so dass bla bla. Es werden Zeichen ausgetauscht.</p>
<p>Ich hab es so gelöst, dass, wie oben zu stehen, eine Kopie des Inhaltes angelegt wird, der dann verändert wird und der alte Zeiger dann auf den neuen Inhalt umgelenkt wird. So erreicht man mit dem selben &quot;const char* beispiel&quot; nun einen neuen Inhalt.</p>
<p>Das Problem ist, dass der alte Inhalt noch irgendwo im Speicher rumgammelt. Das ist bei dem Programm net schlimm, es geht aber um eine art Test. Meine Lösung ist schon weg, aber ich bin immer noch am überlegen. <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>
<p>Nun habe ich im Internet cast_const&lt;...&gt;() gefunden, das soll wohl funktionieren. Aber wenn ich damit den Typ con const char* auf char* ändere, lässt er mich trotzdem nicht den Inhalt ändern. (Compiler sagt, dass &quot;beispiel[5]&quot; nicht beschreibbar ist. Auch sagen viele, dass man sowas nicht machen sollte. (Konstant heißt nicht ohne Grund so,..)</p>
<p>Meine Fragen; funktioniert es irgendwie (z.B. mit cast_const?)<br />
man sagt immer, es können unvorhersehbare Probleme auftreten, ist das wirklich der Fall?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273952</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 17:27:28 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 17:39:39 GMT]]></title><description><![CDATA[<p><code>const char*</code> soll man <em>nie</em> auf <code>char*</code> casten. Denn sie (=die Pointer) können auf Read Only Memory zeigen. Darauf darfst du kein delete machen. Also lass die Finger weg von const_cast.</p>
<p>Wenn du <code>const char* beispiel=&quot;bla bla bla&quot;;</code> hast, kannst du Beispiel nicht löschen und brauchst es nicht tun. Da gammelt nichts im Speicher rum.</p>
<p>Also musst du ihn beschreibbar machen. Das geht zB mit <code>strncpy</code> . Sobald du diesen <code>char*</code> hast, kannst du ihn verändern und musst ihn wieder löschen.</p>
<p>Musst du wirklich <code>beispiel</code> umändern, dann kann das so aussehen:</p>
<pre><code class="language-cpp">const char* beispiel=&quot;bla bla bla&quot;;
int n = strlen(beispiel)+1;
char *beschreibbar = malloc(n);
strncpy(beschreibbar, beispiel, n);
aendere(beschreibbar); // ändere nimmt einen char* entgegen
beispiel = beschreibbar; // höhö
free(breschreibbar);
</code></pre>
<p>So jedenfalls in C. In C++ würde man strings verwenden und dann erübrigt sich das Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273959</guid><dc:creator><![CDATA[unreg_cast]]></dc:creator><pubDate>Fri, 23 Nov 2012 17:39:39 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 17:50:18 GMT]]></title><description><![CDATA[<p>Das macht ja im grunde das selbe wie mein blödsinn. Nur dass du malloc und ich new benutze. Also wenn man eine Deklaration mit Initialisierung hat, was</p>
<pre><code>const char* beispiel = &quot;bla bla&quot;;
</code></pre>
<p>ja quasi ist. Dann dümpelt das net im Speicher rum, nachdem der Zeiger umgelenkt wurde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273961</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 17:50:18 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 17:55:11 GMT]]></title><description><![CDATA[<p>ruhig_brauner schrieb:</p>
<blockquote>
<p>Dann dümpelt das net im Speicher rum, nachdem der Zeiger umgelenkt wurde?</p>
</blockquote>
<p>Schon, aber nicht so wie du meinst. Das ist ein fester Teil deiner Executable und der Zeiger zeigt eben auf eine bestimmte Stelle in deinem Programmcode. Den eigentlichen Inhalt dieser Speicherstelle kannst du (in der Regel) nicht verändern und das ist auch gut so und ganz normal und du brauchst dir deswegen keine Sorgen zu machen.<br />
Mehr Sorgen machen würde ich mir wegen der Aufgabe, ich kann mir eigentlich nur vorstellen, dass du die falsch verstanden hast. Ansonsten würde das nämlich heißen, dass der Aufgabensteller keine Ahnung hat oder euch komische Sachen beibringt. Da wir alle wissen, wie extrem kompetent in C++ Lehrer sind, die vor 40 Jahren mal Basic gelernt haben, kann ich mir das wirklich nicht vorstellen <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/2273965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273965</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 23 Nov 2012 17:55:11 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 18:08:55 GMT]]></title><description><![CDATA[<p>Das ist ne Aufgabe für nen Einstellungstest. Bewerbung ist schon durch, dann halt ein kleiner Test zum Thema C++. Bin Student im ersten Semester, will da als Werksstudent ein wenig Praxisluft schnuppern und ein wenig mehr meine C/++ Kenntnisse fordern, in der HS sind wir momentan gerade mal bei simplen Konsolen-Anwendungen, bei denen das komplexeste eine Schleife ist. <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>
<p>In dem Vorgegebenen Code ist eben so eine Zeile:</p>
<pre><code>&quot;const char *bla = &quot;quarks und Co.&quot;;
</code></pre>
<p>wobei char* bla das selbe ist wie char *bla, nach meinem Wissen.</p>
<p>Eine Aufgabe ist quasi: Die Funktion ... soll in dem String &quot;bla&quot; alle &quot;u&quot; durch &quot;U&quot; ersetzen (u -&gt; U). (Blödes BEispiel aber ich weiß net, ob ich so einfach die Aufgabe und die Firma hier posten sollte... <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/2273970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273970</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 18:08:55 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 18:41:36 GMT]]></title><description><![CDATA[<p>Der wichtigste Punkt bei dieser Sache mit den Zeichenketten ist eben das UB.<br />
Das Programm crasht dann AFAIR in den meisten Fällen nicht, aber was eigentlich passiert ist eben nie garantiert.</p>
<blockquote>
<p>Eine Aufgabe ist quasi: Die Funktion ... soll in dem String &quot;bla&quot; alle &quot;u&quot; durch &quot;U&quot; ersetzen (u -&gt; U).</p>
</blockquote>
<p>Bitte sag deiner Firma, das Assessment Center soll sich bessere Aufgaben ausdenken. Die Aufgabe ist bescheuert formuliert und auch komisch, denn die Funktion ... sollte nicht einfach einen bestimmten String bearbeiten (können), sondern wenigstens alle.<br />
Funktionen müssen schön allgemein gehalten werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273976</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 23 Nov 2012 18:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 18:35:24 GMT]]></title><description><![CDATA[<p>Das ist meine Formulierung <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>
<p>Die Funtktion kann alle Strings, die ihr übergeben werden (const char*) bearbeiten. Mir fällt nur gerade ein, dass kein delete[]-Befehl drin ist. Wenn man (nicht in der Aufgabe enthalten) die Funktion über einen mit new angeforderten Speicherplatz laufen lässt, gibt es n Memory-Leak, oder? <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/2273978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273978</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 18:35:24 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 18:38:45 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>In C++ gehen beide Schreibweisen, da gibt es keinen Unterschied. In C ging nur eine.</p>
</blockquote>
<p>Nein, das geht auch in C beides.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273979</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 23 Nov 2012 18:38:45 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 18:38:50 GMT]]></title><description><![CDATA[<blockquote>
<p>Die Funtktion kann alle Strings, die ihr übergeben werden (const char*) bearbeiten.</p>
</blockquote>
<p>facepalm<br />
<strong>Nein, dieser Zeiger impliziert doch dass der String auf den er zeigt nicht verändert werden darf/soll!</strong></p>
<blockquote>
<p>Mir fällt nur gerade ein, dass kein delete[]-Befehl drin ist. Wenn man (nicht in der Aufgabe enthalten) die Funktion über einen mit new angeforderten Speicherplatz laufen lässt, gibt es n Memory-Leak, oder?</p>
</blockquote>
<p>s. o., den Speicherplatz freizugeben verändert den String insofern dass er jeden Moment überschrieben werden kann. Das darf nicht geschehen. s. o.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273980</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 23 Nov 2012 18:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 18:41:21 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>In C++ gehen beide Schreibweisen, da gibt es keinen Unterschied. In C ging nur eine.</p>
</blockquote>
<p>Nein, das geht auch in C beides.</p>
</blockquote>
<p>Wirklich? In C++ von A bis Z steht AFAIK was anderes. Ich krams mal raus, aber ich hab mich bestimmt nur falsch erinnert <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>Edit: Jup, er sagt nur, dass die eine in C sehr oft genutzt wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273981</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 23 Nov 2012 18:41:21 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 18:47:26 GMT]]></title><description><![CDATA[<p>Willst du hier ernsthaft JW als Quelle angeben? Das ist schon fast ein Beweis, dass es nicht so ist, wenn er das so schreibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273984</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 23 Nov 2012 18:47:26 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 18:52:37 GMT]]></title><description><![CDATA[<p>Also hab das mal probiert, nachdem ich den String (const char*) mit der funktion geändert habe kann ich den neuen String, der ausgegeben halt anders aussieht, wieder verändern. (Funktion kopiert und Veränderung angepasst damit man den unterschied sieht)</p>
<p>Nur gammelt jetzt wirklich ein mit new angelegter Char*-String im Speicher rum. ..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273989</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 18:52:37 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 19:07:01 GMT]]></title><description><![CDATA[<p>ruhig_brauner schrieb:</p>
<blockquote>
<p>Nur gammelt jetzt wirklich ein mit new angelegter Char*-String im Speicher rum. ..</p>
</blockquote>
<p>Vielleicht sollst du auch zeigen, dass du std::string kennst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273992</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 23 Nov 2012 19:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 19:07:04 GMT]]></title><description><![CDATA[<p>Ich peil nicht was du überhaupt machen willst: Kannst du nicht einfach std::string verwenden und gut?<br />
Die Aufgabenstellung ist wirr, sowas bekommst du sicher nicht beim Einstellungstest, du lieferst hier höchstwarscheinlich deine eigene Interpretation ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273993</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Fri, 23 Nov 2012 19:07:04 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 19:13:40 GMT]]></title><description><![CDATA[<p>wenn ein const char* vorgegeben ist, werde ich doch net anfangen, das ding in ein string umzuwandeln. Ich weiß schließlich net, was man später damit machen will. <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/2273997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273997</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 19:13:40 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 19:21:23 GMT]]></title><description><![CDATA[<p>ruhig_brauner schrieb:</p>
<blockquote>
<p>wenn ein const char* vorgegeben ist, werde ich doch net anfangen, das ding in ein string umzuwandeln. Ich weiß schließlich net, was man später damit machen will. <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>Kopf-&gt;Tisch<br />
Das war <strong>nicht</strong> gemeint.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2274002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2274002</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 23 Nov 2012 19:21:23 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 19:27:16 GMT]]></title><description><![CDATA[<p>Sone du solltest aufhören deinen Kopf gegen den Tisch oder deine Hand zu hauen und die zeit investieren um zu erklären, was du meinst. <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>
<p>Es ist ein kleiner Teil des Quelltextes schon vorgeschrieben, unter anderem die Deklaration von zwei const char* -Elementen. Dann noch zwei Funktionen ohne Parameterübergabe, die ich füllen soll. Dann noch einen kleinen Dialog ergänzen. Das war es im großen und ganzen.</p>
<p>Ich hab dann halt mitbekommen, das man eigentlich keine const char*-Elemente ändern kann. Die Funktion löst das Problem, indem sie ein neues Element Erzeugt und nach Bearbeitung den alten Zeiger drauf umgelenkt. Schon hat sich das. Die Frage war nur, ob man sich das mit cast_const sparen kann.</p>
<p>Wie wäre euer Ansatz?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2274006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2274006</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 19:27:16 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 19:40:50 GMT]]></title><description><![CDATA[<p>ruhig_brauner schrieb:</p>
<blockquote>
<p>Wie wäre euer Ansatz?</p>
</blockquote>
<p>Gib uns die genaue Aufgabenstellung, nicht bloß deine prosaische Interpretation. Hast du Code?</p>
<p>P.S.: const_cast ist sicherlich nicht die Lösung, sondern ist grob falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2274014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2274014</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 23 Nov 2012 19:40:50 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 19:46:48 GMT]]></title><description><![CDATA[<p>Wie gesagt, die poste ich aus paranoiden gründen net, aber an sich hab ich nur die Variablen und so umgenannt.</p>
<p>Vorgabe:</p>
<pre><code>class Myclass
{
   public

   ersetze_H_mit_h_(...)
   {
   ...
   }

};

int main()
{
const char* aendermich = &quot;Hallo, hallo&quot;

// Ausgabe neuer und alter String
}
</code></pre>
<p>Augabe:<br />
- ersetze_H_mit_h_(...) soll alle &quot;H&quot;s mit &quot;h&quot;s im String aendermich ersetzen.<br />
- bei dem Kommentar // Ausgabe neuer und alter String soll der neue und der alte String ersetzt werden</p>
<p>Da sind noch andere Aufgaben, die hab ich raus gestrichen. Ich hab jetzt alles wichtige von der Formulierung ähnlich gelassen, der Quelltext ist fast identisch, andere Namen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2274017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2274017</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 19:46:48 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 19:58:39 GMT]]></title><description><![CDATA[<pre><code>std::string ersetze_h_mit_H(char const* str)
{
    std::string result(str);
    std::replace(result.begin(), result.end(), 'h', 'H');
    return result;
}

int main()
{
    const char* aendermich = &quot;Hallo, hallo&quot;;
    std::string geaendert = ersetze_h_mit_H(aendermich);

    std::cout &lt;&lt; &quot;Alt: &quot; &lt;&lt; aendermich;
    std::cout &lt;&lt; &quot;\nNeu: &quot; &lt;&lt; geaendert &lt;&lt; '\n';
}
</code></pre>
<p>Was ist an der Lösung inkorrekt? Wenn du Bock hast kannst du dir ja mit std::string::c_str einen const char* geben lassen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2274020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2274020</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Fri, 23 Nov 2012 19:58:39 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 20:05:25 GMT]]></title><description><![CDATA[<p>Nach dem was ich verstehe, soll ich &quot;aendermich&quot; verändern und keine neue Variable erzeugen. Ich nehme mal an mit std String-Objekten geht das auch, aber dann nimmt sich das sicher net mehr viel.</p>
<p>Geht die Umwandlung von string in c-string schnell? In die andere richtung ja anscheinend schon. <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/2274022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2274022</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 20:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 20:13:51 GMT]]></title><description><![CDATA[<p>ruhig_brauner schrieb:</p>
<blockquote>
<p>Nach dem was ich verstehe, soll ich &quot;aendermich&quot; verändern und keine neue Variable erzeugen.</p>
</blockquote>
<p>Wie kommst du zu diesem Verständnis. Wenn du hinterher die alte Zeichenkette auch noch mit ausgeben sollst, widerspricht dies dieser Interpretation.</p>
<p>P.S.: Eine andere Herangehensweise wäre übrigens, ein &quot;View&quot;-Objekt zu erzeugen, welches gar keine Kopie der Zeichen macht, sondern on-demand eine veränderte Version der Zeichen gibt. Dies würde auch zu der gezeigten Signatur passen, eigentlich fast schon besser. Würde zu einer Firma passen, die starken Wert auf Design-Patterns und so legt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2274028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2274028</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 23 Nov 2012 20:13:51 GMT</pubDate></item><item><title><![CDATA[Reply to const char* verändern? on Fri, 23 Nov 2012 20:15:27 GMT]]></title><description><![CDATA[<p>Naja hab ja nur gesagt Dialog, hätte es vielleicht besser posten sollen...</p>
<p>cout &lt;&lt; aendermich;</p>
<p>funktion(aendermich);<br />
cout &lt;&lt; aendermich;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2274029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2274029</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Fri, 23 Nov 2012 20:15:27 GMT</pubDate></item></channel></rss>