<?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[wie wstring zu string konvertieren?]]></title><description><![CDATA[<p>wie kann ich das machen? gibt es da fertige funktionen oder sowas?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/312469/wie-wstring-zu-string-konvertieren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 18:46:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312469.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 05 Jan 2013 16:55:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wie wstring zu string konvertieren? on Sat, 05 Jan 2013 16:55:44 GMT]]></title><description><![CDATA[<p>wie kann ich das machen? gibt es da fertige funktionen oder sowas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2286566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2286566</guid><dc:creator><![CDATA[anfaenger_cpp_string]]></dc:creator><pubDate>Sat, 05 Jan 2013 16:55:44 GMT</pubDate></item><item><title><![CDATA[Reply to wie wstring zu string konvertieren? on Sat, 05 Jan 2013 17:15:42 GMT]]></title><description><![CDATA[<p>wenn du nicht gleichzeitig UTF-16 in UTF-8 konvertieren möchtest geht das einfach so:</p>
<p>std::wstring myWstring = ...;<br />
std::string myString (myWstring.begin(), myWstring.end());</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2286573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2286573</guid><dc:creator><![CDATA[dd++ 0]]></dc:creator><pubDate>Sat, 05 Jan 2013 17:15:42 GMT</pubDate></item><item><title><![CDATA[Reply to wie wstring zu string konvertieren? on Sat, 05 Jan 2013 18:50:32 GMT]]></title><description><![CDATA[<p>Wenn ich von so einem Fall ausgehe:</p>
<pre><code>void myStringFunction(std::string &amp;in)
{
   // do something
}

int main()
{
   std::wstring w_str = L&quot;my string&quot;;
   std::string  s_str(w_str.begin(), w_str.end());

   myStringFunction(s_str);
}
</code></pre>
<p>Das Problem dabei ist doch, dass die Größe des Strings die gleiche bleibt.<br />
Das heißt am Ende habe ich bei meinem std::string</p>
<pre><code>w_str.size() / 2
</code></pre>
<p>überflüssig belegten Speicher, oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2286607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2286607</guid><dc:creator><![CDATA[anfaenger_cpp_string]]></dc:creator><pubDate>Sat, 05 Jan 2013 18:50:32 GMT</pubDate></item><item><title><![CDATA[Reply to wie wstring zu string konvertieren? on Sat, 05 Jan 2013 19:05:52 GMT]]></title><description><![CDATA[<p>der std::string hat nach der Umwandlung dieselbe Anzahl Zeichen, aber nicht dieselbe Anzahl Bytes.</p>
<p>noch der Hinweis: unter Windows ist meist sizeof(wchar_t)==2, unter Linux&amp;Co. ist meist sizeof(wchar_t)==4</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2286612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2286612</guid><dc:creator><![CDATA[dd++ 0]]></dc:creator><pubDate>Sat, 05 Jan 2013 19:05:52 GMT</pubDate></item><item><title><![CDATA[Reply to wie wstring zu string konvertieren? on Sat, 05 Jan 2013 19:10:41 GMT]]></title><description><![CDATA[<p>Also bei mir (Windows 8 64bit) hat der std::string die selbe Anzahl Bytes.<br />
Ich muss dann dass hier machen, damit ich wieder was vernünftiges habe:</p>
<pre><code>void myStringFunction(std::string &amp;in)
{
   // do something
}

int main()
{
   std::wstring w_str = L&quot;my string&quot;;
   std::string  s_str(w_str.begin(), w_str.end());
   s_str.resize(s_str.size() / 2);

   myStringFunction(s_str);
}
</code></pre>
<p>Wieso das so ist verstehe ich nicht wirklich <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="=/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2286614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2286614</guid><dc:creator><![CDATA[anfaenger_cpp_string]]></dc:creator><pubDate>Sat, 05 Jan 2013 19:10:41 GMT</pubDate></item><item><title><![CDATA[Reply to wie wstring zu string konvertieren? on Sat, 05 Jan 2013 19:22:38 GMT]]></title><description><![CDATA[<p>Warum willst du überhaupt konvertieren? Du verlierst dadruch ja Informationen bzw. der string wird ein anderer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2286616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2286616</guid><dc:creator><![CDATA[äh.]]></dc:creator><pubDate>Sat, 05 Jan 2013 19:22:38 GMT</pubDate></item><item><title><![CDATA[Reply to wie wstring zu string konvertieren? on Sat, 05 Jan 2013 19:28:29 GMT]]></title><description><![CDATA[<p>der Konstruktor, der hier verwendet wird, ist der Template-Konstruktor ganz am Ende der Liste, deshalb geht das sowohl mit std::string als auch mit std::wstring</p>
<p><a href="http://www.cplusplus.com/reference/string/string/string/" rel="nofollow">http://www.cplusplus.com/reference/string/string/string/</a></p>
<p>das Beispiel geht bei mir mit VC++ 2010 ohne Probleme durch</p>
<pre><code>#include &lt;string&gt;

int main ()
  {
  std::wstring myWstring = L&quot;12345&quot;;
  std::string myString (myWstring.begin(), myWstring.end());
  printf (&quot;%d %d \&quot;%s\&quot;\n&quot;, (unsigned)myString.length(),
    (unsigned)myString.size(), myString.c_str());
  return 0;
  }
</code></pre>
<p>Ausgabe:</p>
<pre><code>5 5 &quot;12345&quot;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2286618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2286618</guid><dc:creator><![CDATA[dd++ 0]]></dc:creator><pubDate>Sat, 05 Jan 2013 19:28:29 GMT</pubDate></item><item><title><![CDATA[Reply to wie wstring zu string konvertieren? on Sat, 05 Jan 2013 23:18:13 GMT]]></title><description><![CDATA[<p>std::string::size() gibst du die Länge des Strings an und nicht die Bytegröße.<br />
Ob du nun 10 Buchstaben mit je 2 Bytes oder 10 mit je 1 Byte macht keinen Unterschied, denn es bleiben immer 10 Zeichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2286664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2286664</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Sat, 05 Jan 2013 23:18:13 GMT</pubDate></item><item><title><![CDATA[Reply to wie wstring zu string konvertieren? on Sun, 06 Jan 2013 08:36:44 GMT]]></title><description><![CDATA[<p>bei std::string/std::wstring ist size() und length() dasselbe, wobei size() bei std::wstring etwas irreführend ist ... nunja</p>
<p>von mir noch die Ergänzung: wie ich oben schon geschrieben habe, wird bei dieser Konvertierung aus einem wchar_t ein char, ohne Berücksichtigung einer evtl. UTF Kodierung, d.h. das geht nur mit ASCII, Latin-1, ISO 8859-1, Windows-1252 usw.</p>
<p>hier der Test mit dem UTF-16 EUR Zeichen:</p>
<pre><code>#include &lt;string&gt;

int main ()
  {
  wchar_t wac1 [] =
    {
    /*a*/ 0x61, /*b*/ 0x62, /*c*/ 0x63,
    /*EuroSign*/ 0x20ac,
    /*x*/ 0x78, /*y*/ 0x79, /*z*/ 0x7a, 0
    };
  std::wstring myWstring = wac1;
  std::string myString (myWstring.begin(), myWstring.end());
  printf (&quot;%d \&quot;%s\&quot;\n&quot;, (unsigned)myString.length(), myString.c_str());
  return 0;
  }
</code></pre>
<p>Ausgabe:</p>
<pre><code>7 &quot;abc¼xyz&quot;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2286693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2286693</guid><dc:creator><![CDATA[dd++ 0]]></dc:creator><pubDate>Sun, 06 Jan 2013 08:36:44 GMT</pubDate></item></channel></rss>