<?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[Verliere ich mein Nullzeichen]]></title><description><![CDATA[<p>Verliere ich hier mein Nullzeichen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;

using std::cout;
using std::cin;
using std::endl;

int main()
{
    char p1[11] = &quot;Hallo Welt&quot;;
    char *temp = &quot;Tag Du&quot;;
    strncpy(p1,temp,2);
    cout &lt;&lt; p1 &lt;&lt; endl; //OUT: Tallo Welt

    return 0;
}
</code></pre>
<p>Hab ich in p1 jetzt noch ein Nullzeichen oder nicht mehr? Weil ich hab im Internet gelesen: &quot;If you copy less characters than the size of the source string, you will lose the null character, and the resulting string may end up with no null character.&quot;</p>
<p>Eure Meinung?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/231080/verliere-ich-mein-nullzeichen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 26 Sep 2026 00:31:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/231080.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Jan 2009 14:01:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 14:01:13 GMT]]></title><description><![CDATA[<p>Verliere ich hier mein Nullzeichen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;

using std::cout;
using std::cin;
using std::endl;

int main()
{
    char p1[11] = &quot;Hallo Welt&quot;;
    char *temp = &quot;Tag Du&quot;;
    strncpy(p1,temp,2);
    cout &lt;&lt; p1 &lt;&lt; endl; //OUT: Tallo Welt

    return 0;
}
</code></pre>
<p>Hab ich in p1 jetzt noch ein Nullzeichen oder nicht mehr? Weil ich hab im Internet gelesen: &quot;If you copy less characters than the size of the source string, you will lose the null character, and the resulting string may end up with no null character.&quot;</p>
<p>Eure Meinung?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640401</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Tue, 06 Jan 2009 14:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 14:07:31 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">cout &lt;&lt; p1 &lt;&lt; endl; //OUT: Tallo Welt
</code></pre>
</blockquote>
<p>Na, was glaubst du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640406</guid><dc:creator><![CDATA[Cptn. Obvious]]></dc:creator><pubDate>Tue, 06 Jan 2009 14:07:31 GMT</pubDate></item><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 14:17:14 GMT]]></title><description><![CDATA[<p>Hallo Stromberg,</p>
<p>kommt drauf an, welches Nullzeichen Du meinst. Hinter den beiden Zeichen &quot;Ta&quot;, die du kopierst, wird kein Nullzeichen mehr angehängt, da nicht mehr als 2 Zeichen kopiert werden. Aber das Nullzeichen hinter &quot;Hallo Welt&quot; bleibt natürlich erhalten.</p>
<p>Übrigens ganz einfach und immer richtig ist:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt; // ohne c

using std::cout;
using std::cin;
using std::endl;
using std::string;

int main()
{
    sring p1 = &quot;Hallo Welt&quot;;
    string temp = &quot;Tag Du&quot;;
    p1 = temp;
    cout &lt;&lt; p1 &lt;&lt; endl; //OUT: Tag Du

    return 0;
}
</code></pre>
<p>:xmas2: Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640412</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 06 Jan 2009 14:17:14 GMT</pubDate></item><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 14:21:40 GMT]]></title><description><![CDATA[<p>Joa, ich hab natürlich das Nullzeichen von p1 gemeint. Dass das von temp weg ist, is mir schon klar.<br />
Gut dann wäre dass geklärt. Dankeschön.</p>
<p>MfG<br />
Stromberg</p>
<p>PS_0: Ich werde es natürlich immer mit Strings machen, wäre ja schön blöd wenn ich mir dass mit C-Strings antuen würde, es kam bloß grad in meinem Buch Kapitel vor.</p>
<p>PS_1: Glaubt ihr dass man mit C-Strings schneller unterwegs ist als mit C++-Strings? (wegen Zeiger...maschienenahe...?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640414</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Tue, 06 Jan 2009 14:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 14:24:22 GMT]]></title><description><![CDATA[<p>Wie kommst Du dazu, zu behaupten, daß das immer richtig ist? Das ist doch ein völlig anderes Ergebnis als ursprünglich. Welches davon im konkreten Fall (und nicht 'immer') richtig ist, hängt doch zu einem nicht unwesentlichen Teil von der Intention des Autors ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640418</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Tue, 06 Jan 2009 14:24:22 GMT</pubDate></item><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 14:27:12 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>PS_1: Glaubt ihr dass man mit C-Strings schneller unterwegs ist als mit C++-Strings? (wegen Zeiger...maschienenahe...?)</p>
</blockquote>
<p>in ausnahmefällen ja. zum beispiel, wenn ein char* p1=temp; ausreicht. aber sobald du speicher anlegen mußt, weil der string zum beispiel vom benutzer eingegeben wird udn du seine länge vorher nicht kennen kannst, bläst std::string mehr als was du selber bastelst. es gibt in c++ generell keinen vorteil, etwas &quot;maschinennäher&quot; zu machen. die abstraktion mit dem gehansel um klassen und templates kostet keine performance, sondern bring übersicht und sicherheit kostenlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640420</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 06 Jan 2009 14:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 14:39:11 GMT]]></title><description><![CDATA[<p>Belli schrieb:</p>
<blockquote>
<p>Wie kommst Du dazu, zu behaupten, daß das immer richtig ist? Das ist doch ein völlig anderes Ergebnis als ursprünglich. Welches davon im konkreten Fall (und nicht 'immer') richtig ist, hängt doch zu einem nicht unwesentlichen Teil von der Intention des Autors ab.</p>
</blockquote>
<p>Du hast Recht - da habe ich mich mehrdeutig ausgedrückt. Gemeint habe ich die Verwendung von std::string; nicht das Programm. Stromberg hat es auch so verstanden.<br />
Aber bitte jetzt keine Diskussion über char* und std::string ...</p>
<p>:xmas2: Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640424</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 06 Jan 2009 14:39:11 GMT</pubDate></item><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 14:46:34 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>PS_1: Glaubt ihr dass man mit C-Strings schneller unterwegs ist als mit C++-Strings? (wegen Zeiger...maschienenahe...?)</p>
</blockquote>
<p>Teilweise, die Frage ist nur:<br />
a) Was ist dir wichtiger: Sicherheit oder Performance<br />
b) Wie gut ist die Standardbibliothek umgesetzt (teilweise durch Aufrufe/Makros behebbar, beispiel MSVC: SLC_SECURE 0 kann im Release etwas bringen, ebenso wie das setzen eines Buffers bei Streams...).</p>
<p>In der Praxis habe ich, gemessen auf einen kompletten Anwendungsfall, bislang selten wirklich massiv messbare Vorteile zwischen C und C++ Funktionalitäten gefunden (und wenn lies sich so etwas in 90% der Fälle wie unter b erwähnt beheben).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640433</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 06 Jan 2009 14:46:34 GMT</pubDate></item><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 14:51:56 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>a) Was ist dir wichtiger: Sicherheit oder Performance</p>
</blockquote>
<p>das ist kein gegensatzpaar. schlanker code tendiert von allein dahin, sicher und performant zugleich zu sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640437</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 06 Jan 2009 14:51:56 GMT</pubDate></item><item><title><![CDATA[Reply to Verliere ich mein Nullzeichen on Tue, 06 Jan 2009 15:31:47 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>asc schrieb:</p>
<blockquote>
<p>a) Was ist dir wichtiger: Sicherheit oder Performance</p>
</blockquote>
<p>das ist kein gegensatzpaar. schlanker code tendiert von allein dahin, sicher und performant zugleich zu sein.</p>
</blockquote>
<p>Sagen wir es so: Es kann ein Widerspruch sein, muss aber nicht (boost::format vs. sprintf &amp; Konsorten - Bei ungleichen Voraussetzungen, die recht verbreitet sind: Streams ungepuffert, C-Funktionen gepuffert).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1640460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1640460</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 06 Jan 2009 15:31:47 GMT</pubDate></item></channel></rss>