<?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 + literal + std::string]]></title><description><![CDATA[<p>Hi!</p>
<p>Warum gibt das ...</p>
<pre><code class="language-cpp">std::string str = &quot;blabla&quot;;
cout &lt;&lt; (char)97 + &quot;literal&quot; + str &lt;&lt; endl;
</code></pre>
<p>... nur &quot;blabla&quot;, und manchmal sogar vorher noch was ganz komisches, aus?<br />
Ohne dem Literal funktioniert es aber, doch das Literal wird doch eh implizit zu std::string gecastet?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253603/char-literal-std-string</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 15:14:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253603.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Nov 2009 14:53:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to char + literal + std::string on Wed, 04 Nov 2009 14:53:38 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Warum gibt das ...</p>
<pre><code class="language-cpp">std::string str = &quot;blabla&quot;;
cout &lt;&lt; (char)97 + &quot;literal&quot; + str &lt;&lt; endl;
</code></pre>
<p>... nur &quot;blabla&quot;, und manchmal sogar vorher noch was ganz komisches, aus?<br />
Ohne dem Literal funktioniert es aber, doch das Literal wird doch eh implizit zu std::string gecastet?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803258</guid><dc:creator><![CDATA[Addier0r]]></dc:creator><pubDate>Wed, 04 Nov 2009 14:53:38 GMT</pubDate></item><item><title><![CDATA[Reply to char + literal + std::string on Wed, 04 Nov 2009 14:58:30 GMT]]></title><description><![CDATA[<p>Kommt draufan ob char + string literal ODER string literal + std::string zuerst gerechnet wird...</p>
<p><strong>Edit</strong></p>
<blockquote>
<p>doch das Literal wird doch eh implizit zu std::string gecastet?</p>
</blockquote>
<p>Nein, nicht prinzipiell... und gecastet wird hier sowiso nichts, wenn schon, dann konstruiert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803263</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Wed, 04 Nov 2009 14:58:30 GMT</pubDate></item><item><title><![CDATA[Reply to char + literal + std::string on Wed, 04 Nov 2009 14:58:56 GMT]]></title><description><![CDATA[<p>Ja, aber in meinem Fall?<br />
Und woran liegts nun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803264</guid><dc:creator><![CDATA[Addier0r]]></dc:creator><pubDate>Wed, 04 Nov 2009 14:58:56 GMT</pubDate></item><item><title><![CDATA[Reply to char + literal + std::string on Wed, 04 Nov 2009 15:01:13 GMT]]></title><description><![CDATA[<p>steps doch mal durch mit dem debugger...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803266</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Wed, 04 Nov 2009 15:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to char + literal + std::string on Wed, 04 Nov 2009 15:04:17 GMT]]></title><description><![CDATA[<p>Ja denn du nutzt den + Operator der datentypen char und char* in diesem Zusammenhanng falsch. In diesem Ausdruck wird die Addresse des String-Literals zur 97 hinzuaddiert und was der mit dem Objekt macht weiß ich jetzt auch nicht. Jedenfalls kommt es dann zu einer unsinnigen Ausgabe. Korrekt wäre</p>
<pre><code class="language-cpp">cout &lt;&lt; (char)97 &lt;&lt; &quot;literal&quot; &lt;&lt; str;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803270</guid><dc:creator><![CDATA[player4245]]></dc:creator><pubDate>Wed, 04 Nov 2009 15:04:17 GMT</pubDate></item><item><title><![CDATA[Reply to char + literal + std::string on Wed, 04 Nov 2009 15:10:19 GMT]]></title><description><![CDATA[<p>cout kann ich aber in der konkreten Anwendung nicht benutzen.<br />
Naja, dann werde ich halt den Konstruktor von std::string verwenden (mit 1x char x füllen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803278</guid><dc:creator><![CDATA[Addier0r]]></dc:creator><pubDate>Wed, 04 Nov 2009 15:10:19 GMT</pubDate></item><item><title><![CDATA[Reply to char + literal + std::string on Wed, 04 Nov 2009 15:42:37 GMT]]></title><description><![CDATA[<p>Addier0r schrieb:</p>
<blockquote>
<p>cout kann ich aber in der konkreten Anwendung nicht benutzen.</p>
</blockquote>
<p>Dann führe deine Helfer nicht in die Irre indem du es in deinem Code so zeigst.<br />
op+ ist linksassoziativ, du könntest alternativ einfach einen leeren string voranstellen:</p>
<pre><code class="language-cpp">std::string() + (char)90 + &quot;literal&quot; + str
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803312</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 04 Nov 2009 15:42:37 GMT</pubDate></item></channel></rss>