<?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[C Strings]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade am lernen von C++ mit dem Buch C++ von A bis Z. Eine Stelle ist mir noch ein wenig unklar:</p>
<pre><code>// carray2.cpp
#include &lt;iostream&gt;
#include &lt;cstring&gt;
using namespace std;
int main(void) {
   char carray1[80];
   char carray2[] = &quot;Ein C-String&quot;;
   strncpy ( carray1, carray2, sizeof(carray1)-1 );
   cout &lt;&lt; &quot;carray1: &quot; &lt;&lt; carray1 &lt;&lt; '\n';
   return 0;
}
</code></pre>
<p>In der Beschreibung steht:</p>
<pre><code>char*  strncpy ( char * dst, const char * src, size_t n );
</code></pre>
<p>Hiermit werden vom String, der in »src« steht, n Zeichen nach »dst« kopiert. Aber wieso werden hier im Beispiel 79 Zeichen kopiert? Der String ist doch nur 12+1 Zeichen lang.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248963/c-strings</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 17:33:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248963.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 Aug 2009 21:56:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C Strings on Mon, 31 Aug 2009 21:56:39 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade am lernen von C++ mit dem Buch C++ von A bis Z. Eine Stelle ist mir noch ein wenig unklar:</p>
<pre><code>// carray2.cpp
#include &lt;iostream&gt;
#include &lt;cstring&gt;
using namespace std;
int main(void) {
   char carray1[80];
   char carray2[] = &quot;Ein C-String&quot;;
   strncpy ( carray1, carray2, sizeof(carray1)-1 );
   cout &lt;&lt; &quot;carray1: &quot; &lt;&lt; carray1 &lt;&lt; '\n';
   return 0;
}
</code></pre>
<p>In der Beschreibung steht:</p>
<pre><code>char*  strncpy ( char * dst, const char * src, size_t n );
</code></pre>
<p>Hiermit werden vom String, der in »src« steht, n Zeichen nach »dst« kopiert. Aber wieso werden hier im Beispiel 79 Zeichen kopiert? Der String ist doch nur 12+1 Zeichen lang.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770069</guid><dc:creator><![CDATA[Max123]]></dc:creator><pubDate>Mon, 31 Aug 2009 21:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to C Strings on Mon, 31 Aug 2009 22:08:21 GMT]]></title><description><![CDATA[<p>Max123 schrieb:</p>
<blockquote>
<p>Hallo,<br />
ich bin gerade am lernen von C++ mit dem Buch C++ von A bis Z. Eine Stelle ist mir noch ein wenig unklar:</p>
<pre><code>// carray2.cpp
#include &lt;iostream&gt;
#include &lt;cstring&gt;
using namespace std;
int main(void) {
   char carray1[80];
   char carray2[] = &quot;Ein C-String&quot;;
   strncpy ( carray1, carray2, sizeof(carray1)-1 );
   cout &lt;&lt; &quot;carray1: &quot; &lt;&lt; carray1 &lt;&lt; '\n';
   return 0;
}
</code></pre>
<p>In der Beschreibung steht:</p>
<pre><code>char*  strncpy ( char * dst, const char * src, size_t n );
</code></pre>
<p>Hiermit werden vom String, der in »src« steht, n Zeichen nach »dst« kopiert. Aber wieso werden hier im Beispiel 79 Zeichen kopiert? Der String ist doch nur 12+1 Zeichen lang.</p>
</blockquote>
<p>Es werden nicht 79 Zeichen von src nach dst kopiert, sondern strlen(src) Zeichen von src oder maximal n Zeichen - je nachdem, was kleiner ist. Falls strlen(src) kleiner als n ist, werden danach n - strlen(src) Nullen nach dst geschieben.</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770072</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Mon, 31 Aug 2009 22:08:21 GMT</pubDate></item><item><title><![CDATA[Reply to C Strings on Mon, 31 Aug 2009 22:15:40 GMT]]></title><description><![CDATA[<p>ok danke da war das im Buch ja etwas undeutlich geschrieben für einen Anfänger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770075</guid><dc:creator><![CDATA[Max123]]></dc:creator><pubDate>Mon, 31 Aug 2009 22:15:40 GMT</pubDate></item><item><title><![CDATA[Reply to C Strings on Mon, 31 Aug 2009 23:32:52 GMT]]></title><description><![CDATA[<p>Max123 schrieb:</p>
<blockquote>
<p>ok danke da war das im Buch ja etwas undeutlich geschrieben für einen Anfänger.</p>
</blockquote>
<p>Es gibt ja auch C++-Referenzen im Netz. Z.B. die hier: <a href="http://www.cppreference.com/wiki" rel="nofollow">http://www.cppreference.com/wiki</a></p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770086</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Mon, 31 Aug 2009 23:32:52 GMT</pubDate></item></channel></rss>