<?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[char* problem]]></title><description><![CDATA[<p>Hi Leute.<br />
Kann mir jemand sagen wie ich ein char* ohne ein \0 am Ende in einen mit \0 am Ende bringe.</p>
<p>Oder wie benutz ich einen &quot;nicht null terminierten&quot; char* in printf ?</p>
<p>Schonmal danke vorab <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/topic/257898/char-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 18:42:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/257898.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Jan 2010 16:54:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 16:54:02 GMT]]></title><description><![CDATA[<p>Hi Leute.<br />
Kann mir jemand sagen wie ich ein char* ohne ein \0 am Ende in einen mit \0 am Ende bringe.</p>
<p>Oder wie benutz ich einen &quot;nicht null terminierten&quot; char* in printf ?</p>
<p>Schonmal danke vorab <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/1832305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832305</guid><dc:creator><![CDATA[Jensiboy1985]]></dc:creator><pubDate>Mon, 04 Jan 2010 16:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 16:57:41 GMT]]></title><description><![CDATA[<p>Jensiboy1985 schrieb:</p>
<blockquote>
<p>Hi Leute.<br />
Kann mir jemand sagen wie ich ein char* ohne ein \0 am Ende in einen mit \0 am Ende bringe.</p>
<p>Oder wie benutz ich einen &quot;nicht null terminierten&quot; char* in printf ?</p>
<p>Schonmal danke vorab <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>
</blockquote>
<p>Du kannst keinen Nullterminierten char * an printf übergeben, da printf sonst nicht weiß, wo das Ende ist. Das ist nämlich der Sinn vom Terminierungszeichen.</p>
<p>Warum ist dein char * denn nicht Nullterminiert?</p>
<p>Übrigens sind wir hier im C++ Forum. Dort nutzt man std::string und man brauch sich darum nicht mehr kümmern:</p>
<pre><code class="language-cpp">std::string str = &quot;Hallo, Welt!&quot;;

std::cout &lt;&lt; str &lt;&lt; std::endl;
</code></pre>
<p>In C:</p>
<pre><code class="language-cpp">char buf[64];
sprintf(buf, &quot;Hallo, Welt!\n&quot;);
printf(&quot;%s&quot;, buf);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1832308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832308</guid><dc:creator><![CDATA[zukzuk]]></dc:creator><pubDate>Mon, 04 Jan 2010 16:57:41 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 16:59:40 GMT]]></title><description><![CDATA[<blockquote>
<p>Du kannst keinen Nullterminierten char * an printf übergeben</p>
</blockquote>
<p>So ist das mit doppelter Verneinung. Manchmal vergisst man eine.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832311</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 04 Jan 2010 16:59:40 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 17:00:00 GMT]]></title><description><![CDATA[<p>na dann terminiere ihn doch einfach <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="😉"
    /> . Oder gebe ihn zeichenweise aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832312</guid><dc:creator><![CDATA[player4245]]></dc:creator><pubDate>Mon, 04 Jan 2010 17:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 17:02:47 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<blockquote>
<p>Du kannst keinen Nullterminierten char * an printf übergeben</p>
</blockquote>
<p>So ist das mit doppelter Verneinung. Manchmal vergisst man eine.</p>
</blockquote>
<p>Und dein Beitrag hatte jetzt welchen nutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832315</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Mon, 04 Jan 2010 17:02:47 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 17:06:25 GMT]]></title><description><![CDATA[<p>Ich hab die Länge des Strings in ner anderen Variable. Kommt von ner externen DLL kann ich leider auch nicht ändern.</p>
<p>Des gleiche ist doch in folgendem Fall: Ich definier ne Struktur die ich dann aus ner Datei les z.B. so (bitte nicht auf Syntax achten :P):</p>
<pre><code class="language-cpp">struct IDStruct{
char Titel[30],
char Interpret[30],
char Songnummer[1]
}
...
IDStruct a;
FileRead(FILE, &amp;a
...
</code></pre>
<p>Wenn ich jetzt aus der Datei les, weiss ich doch auch nicht, wo z.B. der Titel aufhört. Oder wie kann man den in so einem Fall einlesen (Ohne den Titel nochmals &quot;rauszuschneiden&quot;) ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832319</guid><dc:creator><![CDATA[Jensiboy1985]]></dc:creator><pubDate>Mon, 04 Jan 2010 17:06:25 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 17:18:53 GMT]]></title><description><![CDATA[<p>Jensiboy1985 schrieb:</p>
<blockquote>
<p>Ich hab die Länge des Strings in ner anderen Variable. Kommt von ner externen DLL kann ich leider auch nicht ändern.</p>
<p>Des gleiche ist doch in folgendem Fall: Ich definier ne Struktur die ich dann aus ner Datei les z.B. so (bitte nicht auf Syntax achten :P):</p>
<pre><code class="language-cpp">struct IDStruct{
char Titel[30],
char Interpret[30],
char Songnummer[1]
}
...
IDStruct a;
FileRead(FILE, &amp;a
...
</code></pre>
<p>Wenn ich jetzt aus der Datei les, weiss ich doch auch nicht, wo z.B. der Titel aufhört. Oder wie kann man den in so einem Fall einlesen (Ohne den Titel nochmals &quot;rauszuschneiden&quot;) ?</p>
</blockquote>
<p>Du scheinst dich ja in diesem Fall mit einem speziellen Datenformat zu beschäftigen. Wie das also intern aufgebaut ist, musst du nachlesen. Vermutlich steht irgendwo die Länge der entsprechenden Daten oder sie ist immer konstant am gleichen &quot;Ort&quot; zu finden. Beispielsweise könnte der Titel von 0 bis 30 gehen. Das Terminierungszeichen wäre in dem Fall nicht enthalten. Also musst du ein Array mit 31 Elementen anlegen und liest die 30 Zeichen ein und setzt das 31. Zeichen auf \0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832335</guid><dc:creator><![CDATA[ghjghj]]></dc:creator><pubDate>Mon, 04 Jan 2010 17:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 18:13:03 GMT]]></title><description><![CDATA[<p>ghjghj schrieb:</p>
<blockquote>
<p>Du scheinst dich ja in diesem Fall mit einem speziellen Datenformat zu beschäftigen. Wie das also intern aufgebaut ist, musst du nachlesen. Vermutlich steht irgendwo die Länge der entsprechenden Daten oder sie ist immer konstant am gleichen &quot;Ort&quot; zu finden. Beispielsweise könnte der Titel von 0 bis 30 gehen. Das Terminierungszeichen wäre in dem Fall nicht enthalten. Also musst du ein Array mit 31 Elementen anlegen und liest die 30 Zeichen ein und setzt das 31. Zeichen auf \0.</p>
</blockquote>
<p>Andererseits kann man auch einfach C++ Mittel benutzen:<br />
<a href="http://www.cplusplus.com/reference/iostream/ostream/write/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ostream/write/</a></p>
<blockquote>
<p>Writes the block of data pointed by s, with a size of n characters, into the output buffer. The characters are written sequentially until n have been written.</p>
<p>This is an unformatted output function and what is written is not necessarily a c-string, therefore any null-character found in the array s is copied to the destination and does not end the writing process.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1832398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832398</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 04 Jan 2010 18:13:03 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 18:13:56 GMT]]></title><description><![CDATA[<p>... schrieb:</p>
<blockquote>
<p>Und dein Beitrag hatte jetzt welchen nutzen?</p>
</blockquote>
<p>Ich habe auf einen semantischen Fehler hingewiesen, den kein Compiler entdecken kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832400</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 04 Jan 2010 18:13:56 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 18:59:49 GMT]]></title><description><![CDATA[<p>Muss ich wenn ich so ne Struktur definier dann tatsächlich alles dann nochmal mit den entsprechenden Längen auslesen ?</p>
<p>Irgendwie muss ich das doch auch ohne das &quot;nochmals angeben der länge&quot; können!? Die Länge hab ich doch in der Struktur schon festgelegt !?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832441</guid><dc:creator><![CDATA[Jensiboy1985]]></dc:creator><pubDate>Mon, 04 Jan 2010 18:59:49 GMT</pubDate></item><item><title><![CDATA[Reply to char* problem on Mon, 04 Jan 2010 19:01:51 GMT]]></title><description><![CDATA[<p>Sind das jetzt Fragen oder Aussagen von dir? Ich bin mir bei deiner Zeichensetzung nicht so sicher. Spricht denn was gegen das schon vorgeschlagene ostream::write?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1832445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1832445</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 04 Jan 2010 19:01:51 GMT</pubDate></item></channel></rss>