<?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[Strings und die Null]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Verständnisfrage, was die string-Klasse angeht. Was passiert eigentlich mit der Null, wenn ich ein String mit den Memberfunktionen bearbeite, d.h. ohne dabei in andere Datentypen umzuwandeln? Wenn ich das richtig verstehe, dann wird die alte Null immer automatisch entfernt und eine neue am Ende des String angehängt, richtig? Demzufolge müsste der folgende Ausdruck immer richtig sein:</p>
<pre><code class="language-cpp">string szRetrieved(&quot;was-auch-immer&quot;);
szRetrieved.append(&quot;oder?&quot;);		
LPCSTR szRetrievedBuff = szRetrieved.c_str();

szRetrievedBuff [szRetrieved.length()] == '\0'	//müsste auch nach szRetrieved.replace() gelten
</code></pre>
<p>Korrigiert mich bitte wenn ich mich irre.</p>
<p>Danke.<br />
Rewind</p>
<p>P.S. Naja, worauf ich mit der Frage hinauswollte, ist ob es nicht-nulldeterminierte Strings geben kann (halt initialisierte Objekte der String-Klasse ohne 0 am Ende)...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285300/strings-und-die-null</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 09:42:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285300.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Apr 2011 22:21:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Strings und die Null on Sun, 17 Apr 2011 22:32:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Verständnisfrage, was die string-Klasse angeht. Was passiert eigentlich mit der Null, wenn ich ein String mit den Memberfunktionen bearbeite, d.h. ohne dabei in andere Datentypen umzuwandeln? Wenn ich das richtig verstehe, dann wird die alte Null immer automatisch entfernt und eine neue am Ende des String angehängt, richtig? Demzufolge müsste der folgende Ausdruck immer richtig sein:</p>
<pre><code class="language-cpp">string szRetrieved(&quot;was-auch-immer&quot;);
szRetrieved.append(&quot;oder?&quot;);		
LPCSTR szRetrievedBuff = szRetrieved.c_str();

szRetrievedBuff [szRetrieved.length()] == '\0'	//müsste auch nach szRetrieved.replace() gelten
</code></pre>
<p>Korrigiert mich bitte wenn ich mich irre.</p>
<p>Danke.<br />
Rewind</p>
<p>P.S. Naja, worauf ich mit der Frage hinauswollte, ist ob es nicht-nulldeterminierte Strings geben kann (halt initialisierte Objekte der String-Klasse ohne 0 am Ende)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050833</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Sun, 17 Apr 2011 22:32:45 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und die Null on Sun, 17 Apr 2011 22:27:35 GMT]]></title><description><![CDATA[<p>Wie genau die Strings intern arbeiten, ist nicht spezifiziert. Die können also auch den Null-Terminator wegschmeißen und sich die Länge intern notieren. Die Methode c_str() sorgt dann bei Bedarf dafür, daß der String korrekt für C-basierte Stringverarbeitung aufbereitet wird, d.h. ordentlich mit '\0' beendet ist.<br />
Oder in Kurzfassung: Ja (wo immer auch szSourcePath herkam)</p>
<p>(Nebenbei: im Inneren eines std::string ist '\0' als ganz normales Zeichen ohne Sonderbedeutung erlaubt)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050836</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 17 Apr 2011 22:27:35 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und die Null on Sun, 17 Apr 2011 22:31:41 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>(wo immer auch szSourcePath herkam)</p>
</blockquote>
<p>Mein Fehler <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 />
Danke für die Antwort. Ich gehe davon aus, dass sie sich auf die obere Frage bezieht (und nicht auf das post scriptum).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050837</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Sun, 17 Apr 2011 22:31:41 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und die Null on Sun, 17 Apr 2011 22:49:10 GMT]]></title><description><![CDATA[<p>Die Antwort bezog sich eigentlich nur auf die Urpsrungsfrage, ist aber auch auf das Post Scriptum anwendbar:</p>
<p>Ja, die Bedingung <code>str.c_str()[str.length()=='\0'</code> wird vom Standard vorgeschrieben<br />
Ja, es kann std::string's geben, die nicht mit '\0' abgeschlossen sind - c_str() ist die einzige Methode der Klasse, die die Nullterminierung garantiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2050842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2050842</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 17 Apr 2011 22:49:10 GMT</pubDate></item></channel></rss>