<?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[darf man einen string über c_str() ändern?]]></title><description><![CDATA[<p>ist das erlaubt?</p>
<pre><code class="language-cpp">std::string input = &quot;Ho&quot;;
char* p = const_cast&lt;char*&gt;(input.c_str());
p[1] = 'i';
</code></pre>
<p>wenn nein, warum nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162605/darf-man-einen-string-über-c_str-ändern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 15:51:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162605.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Oct 2006 11:11:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to darf man einen string über c_str() ändern? on Fri, 20 Oct 2006 11:11:32 GMT]]></title><description><![CDATA[<p>ist das erlaubt?</p>
<pre><code class="language-cpp">std::string input = &quot;Ho&quot;;
char* p = const_cast&lt;char*&gt;(input.c_str());
p[1] = 'i';
</code></pre>
<p>wenn nein, warum nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158256</guid><dc:creator><![CDATA[linuxpinguin]]></dc:creator><pubDate>Fri, 20 Oct 2006 11:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to darf man einen string über c_str() ändern? on Fri, 20 Oct 2006 11:15:17 GMT]]></title><description><![CDATA[<p>Nein, es ist nicht erlaubt, weil du damit die Speicherverwaltung des Strings aushebeln könntest (schließlich hat es ja einen Grund, daß die Methode einen &quot;<strong>const</strong> char*&quot; ausgibt). Aber zum Glück hat der String den Operator[] überladen, so daß du problemlos &quot;input[1]='i';&quot; schreiben kannst <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/1158260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158260</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 20 Oct 2006 11:15:17 GMT</pubDate></item><item><title><![CDATA[Reply to darf man einen string über c_str() ändern? on Fri, 20 Oct 2006 11:32:39 GMT]]></title><description><![CDATA[<p>linuxpinguin schrieb:</p>
<blockquote>
<p>ist das erlaubt?</p>
<pre><code class="language-cpp">...const_cast...
</code></pre>
</blockquote>
<p>Eigentlich NIE. <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>&quot;erlaubt&quot; heißt hier ja nur: Es gelten weiterhin die &quot;Zusagen der Programmiersprache&quot;. Mit einem const_cast übernimmst Du halt selbst die Verantwortung für das, was passiert ... und üblicherweise kann man das viel schlechter als der Compiler.</p>
<p>In diesem Fall mußt Du z.B. wissen, was bei so einem Zugriff auf ein Objekt der std::string-Klasse passiert, was nicht trivial ist und sich von Version zu Version ändern kann/wird.</p>
<p>Manchmal kann man es wirklich nicht anders lösen und weiß es wirklich besser als der Compiler, dann kann man dessen Bedenken mittels eines &quot;_cast&quot; zum Schweigen bringen, aber man sollte sich dessen bewusst sein, was man da tut.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158271</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 20 Oct 2006 11:32:39 GMT</pubDate></item></channel></rss>