<?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 konvertieren]]></title><description><![CDATA[<p>Ich muss einen Text zusammensetzen und ein static TCHAR davon machen, bin schon 2 Tage am konvertieren, aber irgendwo fehlt mir immer ein Schritt<br />
Ich habe</p>
<p>char buffer1[50];<br />
char buffer2[50];<br />
.<br />
.<br />
.<br />
.<br />
char buffer10[50];</p>
<p>alle enthalten mehr oder weniger lange \0 terminierte strings<br />
ich muss diese zusammensetzten, und am Ende</p>
<p>static TCHAR myTchar[] = DerGesamteString;</p>
<p>herausbekommen<br />
Hat jemand eine Idee dazu?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/156160/string-konvertieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 18:10:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/156160.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 Aug 2006 06:02:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 06:02:00 GMT]]></title><description><![CDATA[<p>Ich muss einen Text zusammensetzen und ein static TCHAR davon machen, bin schon 2 Tage am konvertieren, aber irgendwo fehlt mir immer ein Schritt<br />
Ich habe</p>
<p>char buffer1[50];<br />
char buffer2[50];<br />
.<br />
.<br />
.<br />
.<br />
char buffer10[50];</p>
<p>alle enthalten mehr oder weniger lange \0 terminierte strings<br />
ich muss diese zusammensetzten, und am Ende</p>
<p>static TCHAR myTchar[] = DerGesamteString;</p>
<p>herausbekommen<br />
Hat jemand eine Idee dazu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1116746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1116746</guid><dc:creator><![CDATA[Thomasio]]></dc:creator><pubDate>Mon, 14 Aug 2006 06:02:00 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 07:00:26 GMT]]></title><description><![CDATA[<p>Du stehst wohl auf masochistischen C Code, oder? :p Benutz doch einfach C++ <a href="http://www.cppreference.com/cppstring/index.html" rel="nofollow">strings</a>. Interessant hier ist natürlich <a href="http://www.cppreference.com/cppstring/append.html" rel="nofollow">string::append</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1116762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1116762</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Mon, 14 Aug 2006 07:00:26 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 07:32:42 GMT]]></title><description><![CDATA[<p>Ansonsten hättste mal den sprintf probieren können...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1116767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1116767</guid><dc:creator><![CDATA[DocJunioR]]></dc:creator><pubDate>Mon, 14 Aug 2006 07:32:42 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 14:24:27 GMT]]></title><description><![CDATA[<p>Die Idee alles nach &lt;string&gt; zu konvertieren, so dass ich den Kram leicht zusammenbauen kann hatte ich schon, funktioniert soweit prima, nur muss ich dann immer noch std::string zu TCHAR konvertieren</p>
<p>static TCHAR myTchar[] = _T(&quot;Ein Beispielstring&quot;);</p>
<p>klappt prima, aber wie bringe ich den string da rein?</p>
<p>static TCHAR myTchar[] = _T(myString.c_str());</p>
<p>ergibt:<br />
initializer fails to determine size of `myTchar'<br />
logisch, kann nicht gehen, aber wie sonst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117027</guid><dc:creator><![CDATA[Thomasio]]></dc:creator><pubDate>Mon, 14 Aug 2006 14:24:27 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 14:59:21 GMT]]></title><description><![CDATA[<p>Benutz einen T-string <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>
<pre><code class="language-cpp">typedef std::basic_string&lt;TCHAR&gt; tstring
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1117051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117051</guid><dc:creator><![CDATA[T t Sepp]]></dc:creator><pubDate>Mon, 14 Aug 2006 14:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 15:03:38 GMT]]></title><description><![CDATA[<p>Thomasio schrieb:</p>
<blockquote>
<p>static TCHAR myTchar[] = _T(myString.c_str());</p>
</blockquote>
<p>ohohoh... Du kannst nicht einfach so ein array da draus machen. Nur einen Pointer auf ein array. Und static wird das dann auch niemals!</p>
<pre><code class="language-cpp">//Das sollte funktionieren
TCHAR *myTchar = myString.c_str();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1117054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117054</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:03:38 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 15:20:37 GMT]]></title><description><![CDATA[<p>TCHAR *myTchar = myString.c_str();</p>
<p>invalid conversion from `const char*' to `TCHAR*'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117063</guid><dc:creator><![CDATA[Thomasio]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:20:37 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 15:26:57 GMT]]></title><description><![CDATA[<p>OMG! TCHAR ist ein typedef auf wchar_t, also hast du mit TCHAR* wchar_t*. Wenn du also ein const zurückbekommst, muss auch ein const vor das TCHAR*:<br />
const TCHAR *myTchar = _T(myString.c_str());</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117067</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:26:57 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 15:30:53 GMT]]></title><description><![CDATA[<p>string str = &quot;mystr&quot;;<br />
TCHAR *c;<br />
strcpy(c, str.c_str());</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117071</guid><dc:creator><![CDATA[electric_juice]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:30:53 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 15:52:05 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13190">@electric_juice</a>:<br />
Das funktioniert so schonmal gar nicht. Wenn ein Pointer nicht auf einen durch new allokierten Speicherbereich zeigt (z.B.: &quot;TCHAR *c=new TCHAR[str.length()+1];&quot;), kann man auch nichts mit dem Pointer anfangen. Des Weiteren kann man der Funktion strcpy nur char und nicht wchar_t übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117079</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:52:05 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 15:39:14 GMT]]></title><description><![CDATA[<p>soviel unfug auf einen haufen...</p>
<p>Thomasio schrieb:</p>
<blockquote>
<pre><code class="language-cpp">static TCHAR myTchar[] = DerGesamteString;
</code></pre>
</blockquote>
<p>das kann niemals funktionieren, denn eine arraydefinition ohne dimensionsangabe benötigt eine geeignete initilisierungsliste oder ein stringliteral.</p>
<p>der vorschlag mit c_str ist genauso unsinnig, denn das ergebnis von c_str wird relativ schnell ungültig - spätestens, wenn der string zerstört wird.</p>
<p>wenn wir schon dabei sind...</p>
<pre><code class="language-cpp">char buffer1[50];
char buffer2[50];
.
.
.
.
char buffer10[50];

std::string my_string = std::string(buffer1)+buffer2+buffer3+ ... + buffer10;
std::basic_string&lt;TCHAR&gt; my_tstring;
std::transform(my_string.begin(),my_string.end(),std::back_inserter(my_tstring),std::bind1st(
    std::mem_fun(static_cast&lt;TCHAR (std::ctype&lt;TCHAR&gt;::*)(char) const&gt;(&amp;std::ctype&lt;TCHAR&gt;::widen)),&amp;std::use_facet&lt;std::ctype&lt;TCHAR&gt; &gt;(std::locale())));
</code></pre>
<p>ist auch ein bisschen masochistisch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117080</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:39:14 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 15:47:15 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>soviel unfug auf einen haufen...</p>
<p>Thomasio schrieb:</p>
<blockquote>
<pre><code class="language-cpp">static TCHAR myTchar[] = DerGesamteString;
</code></pre>
</blockquote>
<p>das kann niemals funktionieren, denn eine arraydefinition ohne dimensionsangabe benötigt eine geeignete initilisierungsliste oder ein stringliteral.</p>
<p>der vorschlag mit c_str ist genauso unsinnig, denn das ergebnis von c_str wird relativ schnell ungültig - spätestens, wenn der string zerstört wird.</p>
<p>wenn wir schon dabei sind...</p>
<pre><code class="language-cpp">char buffer1[50];
char buffer2[50];
.
.
.
.
char buffer10[50];

std::string my_string = std::string(buffer1)+buffer2+buffer3+ ... + buffer10;
std::basic_string&lt;TCHAR&gt; my_tstring;
std::transform(my_string.begin(),my_string.end(),std::back_inserter(my_tstring),std::bind1st(
    std::mem_fun(static_cast&lt;TCHAR (std::ctype&lt;TCHAR&gt;::*)(char) const&gt;(&amp;std::ctype&lt;TCHAR&gt;::widen)),&amp;std::use_facet&lt;std::ctype&lt;TCHAR&gt; &gt;(std::locale())));
</code></pre>
<p>ist auch ein bisschen masochistisch...</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> ein bisschen?!?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<pre><code class="language-cpp">TCHAR buffer1[50];
TCHAR buffer2[50];
.
.
.
.
TCHAR buffer10[50];

typedef std::basic_string&lt;TCHAR&gt; tstring;
tstring my_tstring = tstring(buffer1)+buffer2+buffer3+ ... + buffer10;
// Dann kannste wenigstens das gecaste wech lassen
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1117087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117087</guid><dc:creator><![CDATA[T t Sepp]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 15:51:23 GMT]]></title><description><![CDATA[<p>Naja das mit c_str muss ja kein Unfug sein. Er kann den String ja auch kopieren statt zuzuweisen mit der entsprechenden Funktion.</p>
<p>Habe aber nochmal einen Link gefunden, wo einer eine Klasse für die Umwandlung erstellt hat (eigentlich das was camper da schrieb):<br />
<a href="http://www.codecomments.com/archive373-2005-4-477778.html" rel="nofollow">http://www.codecomments.com/archive373-2005-4-477778.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117089</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:51:23 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 16:16:11 GMT]]></title><description><![CDATA[<p>das ist ja alles ganz nett, das meiste davon hatte ich selber auch schon raus, hilft mir nur nicht, denn am Ende brauche ich</p>
<p>static TCHAR myTchar[]</p>
<p>einen const TCHAR draus zu machen führt eine Zeile weiter nur zu<br />
invalid conversion from const TCHAR* to TCHAR*</p>
<pre><code>std::string my_string = std::string(buffer1)+buffer2+buffer3+ ... + buffer10;
std::basic_string&lt;TCHAR&gt; my_tstring;
std::transform(my_string.begin(),my_string.end(),std::back_inserter(my_tstring),std::bind1st(
    std::mem_fun(static_cast&lt;TCHAR (std::ctype&lt;TCHAR&gt;::*)(char) const&gt;(&amp;std::ctype&lt;TCHAR&gt;::widen)),&amp;std::use_facet&lt;std::ctype&lt;TCHAR&gt; &gt;(std::locale())));
</code></pre>
<p>bringt mehr Errors als ich zählen kann<br />
und beim typedef funktioniert die konvertierung zu TCHAR* auch nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117105</guid><dc:creator><![CDATA[Thomasio]]></dc:creator><pubDate>Mon, 14 Aug 2006 16:16:11 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 16:31:54 GMT]]></title><description><![CDATA[<p>Thomasio schrieb:</p>
<blockquote>
<p>das ist ja alles ganz nett, das meiste davon hatte ich selber auch schon raus, hilft mir nur nicht, denn am Ende brauche ich</p>
<p>static TCHAR myTchar[]</p>
<p>einen const TCHAR draus zu machen führt eine Zeile weiter nur zu<br />
invalid conversion from const TCHAR* to TCHAR*</p>
<pre><code>std::string my_string = std::string(buffer1)+buffer2+buffer3+ ... + buffer10;
std::basic_string&lt;TCHAR&gt; my_tstring;
std::transform(my_string.begin(),my_string.end(),std::back_inserter(my_tstring),std::bind1st(
    std::mem_fun(static_cast&lt;TCHAR (std::ctype&lt;TCHAR&gt;::*)(char) const&gt;(&amp;std::ctype&lt;TCHAR&gt;::widen)),&amp;std::use_facet&lt;std::ctype&lt;TCHAR&gt; &gt;(std::locale())));
</code></pre>
<p>bringt mehr Errors als ich zählen kann<br />
und beim typedef funktioniert die konvertierung zu TCHAR* auch nicht</p>
</blockquote>
<p>du benötigst dafür diese header:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;algorithm&gt;
#include &lt;locale&gt;
#include &lt;utility&gt;
#include &lt;functional&gt;
</code></pre>
<p>falls du wirklich ein statisches array benötigst, wäre noch etwas der art:</p>
<pre><code class="language-cpp">static TCHAR myTchar[sizeof buffer1+sizeof buffer2+...+sizeof buffer10]
</code></pre>
<p>möglich. es ist aber eben nicht möglich, dieses array direkt so zu initialisieren, wie du es wünschst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117117</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 14 Aug 2006 16:31:54 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 16:51:29 GMT]]></title><description><![CDATA[<p>Ich hätte gern den Inhalt der buffer in static TCHAR myTchar[]<br />
was ich dabei wie konvertieren muss, ob über std:string oder sonstwas ist mir völlig wurscht<br />
mit Deinen headern sind zwar die Fehler weg, bin ich aber auch wieder bei<br />
cannot convert const TCHAR* to TCHAR*</p>
<p>selbst wenn ich die exakte Länge von myString kenne und<br />
static TCHAR myTchar[47]<br />
schreibe, bekomme ich<br />
invalid initializer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117136</guid><dc:creator><![CDATA[Thomasio]]></dc:creator><pubDate>Mon, 14 Aug 2006 16:51:29 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 17:07:29 GMT]]></title><description><![CDATA[<p>Thomasio schrieb:</p>
<blockquote>
<p>Ich hätte gern den Inhalt der buffer in static TCHAR myTchar[]<br />
was ich dabei wie konvertieren muss, ob über std:string oder sonstwas ist mir völlig wurscht<br />
mit Deinen headern sind zwar die Fehler weg, bin ich aber auch wieder bei<br />
cannot convert const TCHAR* to TCHAR*</p>
<p>selbst wenn ich die exakte Länge von myString kenne und<br />
static TCHAR myTchar[47]<br />
schreibe, bekomme ich<br />
invalid initializer</p>
</blockquote>
<p>wie sieht denn dein code aus? ich bin davon ausgegangen, dass my_tstring als ersatz für myTchar dient. die benutzung eines arrays ist trivial genug:</p>
<pre><code class="language-cpp">std::string my_string = std::string(buffer1)+buffer2+buffer3+ ... + buffer10;
static TCHAR myTchar[...];
std::transform(my_string.begin(),my_string.end(),myTchar,std::bind1st(
    std::mem_fun(static_cast&lt;TCHAR (std::ctype&lt;TCHAR&gt;::*)(char) const&gt;(&amp;std::ctype&lt;TCHAR&gt;::widen)),&amp;std::use_facet&lt;std::ctype&lt;TCHAR&gt; &gt;(std::locale())));
</code></pre>
<p>fundamentale vorteile hat das nicht. wenn du auf exakte konvertierung keinen wert legst, würde ein simples copy auch reichen:</p>
<pre><code class="language-cpp">std::copy(my_string.begin(),my_string.end(),myTchar);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1117145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117145</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 14 Aug 2006 17:07:29 GMT</pubDate></item><item><title><![CDATA[Reply to string konvertieren on Mon, 14 Aug 2006 17:25:48 GMT]]></title><description><![CDATA[<p>Au weia, den Wald zwischen den Bäumen nicht gefunden</p>
<p>static TCHAR myTchar[sizeof buffer1+sizeof buffer2+...+sizeof buffer10];<br />
std::copy(my_string.begin(),my_string.end(),myTchar);</p>
<p>und schon funktioniert das<br />
danke auch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117165</guid><dc:creator><![CDATA[Thomasio]]></dc:creator><pubDate>Mon, 14 Aug 2006 17:25:48 GMT</pubDate></item></channel></rss>