<?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[String an char array Ende kopieren]]></title><description><![CDATA[<p>Hi,<br />
Ich suche eine Funktion, möglichkeit eine Zeichenkette ans Ende eines char arrays zu kopieren. Mein C++ Buch hat dieß jedoch nochnicht behandelt.</p>
<p>MFG ReduX</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200344/string-an-char-array-ende-kopieren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 19:51:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200344.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Dec 2007 16:11:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String an char array Ende kopieren on Thu, 13 Dec 2007 16:11:22 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ich suche eine Funktion, möglichkeit eine Zeichenkette ans Ende eines char arrays zu kopieren. Mein C++ Buch hat dieß jedoch nochnicht behandelt.</p>
<p>MFG ReduX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420053</guid><dc:creator><![CDATA[ReduX]]></dc:creator><pubDate>Thu, 13 Dec 2007 16:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to String an char array Ende kopieren on Thu, 13 Dec 2007 16:20:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">const char* concatenate(const char* cstr, std::string cppstr) {
   return (std::string(cstr) += cppstr).c_str();}
</code></pre>
<p>Waere die &quot;Eher-C++&quot;-Variante (warum auch immer man nicht gleich nur std::strings verwendet...)</p>
<pre><code class="language-cpp">char* buf = &quot;Hello &quot;;
std::string cppstr(&quot;World&quot;);
char* ergebnis = strcat(buf, cppstr.c_str());
</code></pre>
<p>Waere die &quot;Doch-Eher-C&quot;-Variante (find ich pfui in C++ <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/1420059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420059</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 13 Dec 2007 16:20:58 GMT</pubDate></item><item><title><![CDATA[Reply to String an char array Ende kopieren on Thu, 13 Dec 2007 18:51:18 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a>: sicher, das deine &quot;Eher-C++&quot;-Variante da nicht bumm macht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420146</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 13 Dec 2007 18:51:18 GMT</pubDate></item><item><title><![CDATA[Reply to String an char array Ende kopieren on Thu, 13 Dec 2007 21:18:47 GMT]]></title><description><![CDATA[<p>Machen sie leider beide. Die erste, weil das temporäre String-Objekt, aus dem der char-Zeiger kommt, nach dem return verpufft, und damit der char-Zeiger ungültig wird. Die zweite, weil buf auf ein zu kleines Stück Speicher zeigt und noch dazu auf einen konstanten String. ergebnis ist übrigens danach == buf</p>
<p>EDIT:<br />
Die Antwort auf die Fragestellung dürfte dennoch strcat lauten <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/1420223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420223</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 13 Dec 2007 21:18:47 GMT</pubDate></item><item><title><![CDATA[Reply to String an char array Ende kopieren on Thu, 13 Dec 2007 21:27:32 GMT]]></title><description><![CDATA[<p>@LoadJaxom: Was passiert bei folgendem:</p>
<pre><code class="language-cpp">std::string concatenate(const char* cstr, std::string const&amp; cppstr) 
{ return (std::string(cstr) += cppstr); }

int main()
{
    std::string&amp; res(concatenate(&quot;test1&quot;, &quot; geht!&quot;));
    std::cout &lt;&lt; res.c_str() &lt;&lt; std::endl; 
}
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420225</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 13 Dec 2007 21:27:32 GMT</pubDate></item><item><title><![CDATA[Reply to String an char array Ende kopieren on Thu, 13 Dec 2007 21:40:47 GMT]]></title><description><![CDATA[<p>Kompiliert das? Ich meine zumindest der g++ gibt eine Meldung a la &quot;taking reference of temporary&quot;. Jedenfalls ist der String, an den die Referenz gebunden wird, nach dem kompletten Ausdruck tot.</p>
<p>Die Lösung wäre, den String einfach als Kopie zu nehmen. Das erlaubt RVO und ist geradezu ideal für den Compiler auf eine Konstruktion und einen Aufruf von += zu optimieren.</p>
<pre><code class="language-cpp">std::string res(concatenate(&quot;test1&quot;, &quot; geht!&quot;));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1420234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420234</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 13 Dec 2007 21:40:47 GMT</pubDate></item><item><title><![CDATA[Reply to String an char array Ende kopieren on Thu, 13 Dec 2007 22:56:56 GMT]]></title><description><![CDATA[<p>Warum dann nicht einfach gleich <code>string(&quot;Hello &quot;) + &quot;World&quot;</code> ? Gut, ist keine Funktion, aber wenn man schon mit std::string rumhantiert, ist eine Funktion zur Verkettung ja überflüssig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420259</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 13 Dec 2007 22:56:56 GMT</pubDate></item></channel></rss>