wchar_t* nach char* umwandeln?
-
Hallo,
bei reinterpret_cast <char> (wZeichenkette);* schluckt es zwar der Compiler, aber es kommt nichts Gebräuchliches dabei raus. (Genauer gesagt, nur das erste Zeichen des Strings) Weis jemand ne Lösung?
Danke schonmal.
-
den pointer zu 'reinterpretieren' ändert noch lange nicht die daten
einfach jedes zweite zeichen überspringen könnte helfen...
-
Hey, pale dog auch noch wach... Ja das mit dem reinterpretieren war einen Versuch wert. Die Umsetzung deiner vorgeschlagenen Möglichkeit gestaltet sich schon etwas umständlich... Dann müsste ich jeden wchar_t String mit einer Schleife durchlaufen, den Lesepointer inkrementieren, und bei (i% 2) continuen. Oder ich definiere einfach ne inline-Funktion dafür, und übergebe ihr einfach den zu konvertierenden String... Gibt's da nur diese Möglichkeit, oder weis noch jemand evtl. eine Standardlösung?
Achja, und wie weise ich einem wchar_t eigentlich eine Zeichenkette zu? Sorry, das sind meine ersten Versuche mit Wide Charakterzeugs...
wchar_t *text = "Beispieltext" // invalid conversion from `const char*' to `wchar_t' std::wstring text2 = "Bla"; // conversion from `const char[4]' to non-scalar type `std::basic_string<wchar_t, // std::char_traits<wchar_t>, std::allocator<wchar_t> >' requested
-
du könntest sowas ähnliches versuchen:
wstring wide = "Beispieltext"; string narrow (wide.begin(), wide.end()); // zusammenquetschen
aber bestimmt geht's noch besser. ich versteh' nicht viel von C++
-
Ja, wiegesagt, das kann ich erst versuchen, wenn ich weis, wie ich eine Zeichenkette einem wstring zuweisen kann.
-
Alle wichtigen Infos zu Strings findest du hier.
Aber mal kurz ein Beispiel:
std::wstring h = L"Hallo";
-
Danke Artchi, deine Seite hat mir übrigens schon sehr oft weitergeholfen
Ich habe es jetzt mit der Methode von pale gelöst. Wer mehr zu dem Thema wissen möchte, sollte sich den Thread angucken: http://www.c-plusplus.net/forum/viewtopic-var-t-is-168607.html