char* in wstring konvertieren?
lima-city → Forum → Programmiersprachen → C/C++ und D
array
art
code
compiler
dank
ergebnis
erzeugen
hilfe
konstanter ausdruck
konvertieren
objekt
prinzip
suche
tat
test
typ
url
versuchen
welt
zeile
-
Hallo,
wie aus dem Titel ersichtlich, möchte ich ein char* in einen wstring konvertieren. Da char* aus Bytes besteht und wstring intern ein Array aus Integern (oder jedenfalls so was in der Art) ist, stellt sich mir jetzt die Frage ob man zwischen den beiden Typen überhaupt konvertieren kann?! Ich hab schon ein bisschen gegoogelt, bin aber nicht so richtig fündig geworden. Gibt es eine Möglichkeit von char* zu wstring zu konvertieren?
PS: Da die Suche momentan nicht funktioniert oder bei mir jedenfalls keine Ergebnisse ausgeworfen hat, wäre ich auch über einen Link zu einem anderen Beitrag dankbar
Beitrag zuletzt geändert: 5.7.2010 19:30:39 von primenic -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das scheint in der Tat nicht ganz Trivial zu sein. Man muss erst aus dem char* ein wchat_t* machen (mithilfe von mbstowcs[1]) und kann dann daraus einfach über den Konstruktor von wstring sich ein neues Objekt erzeugen:
Quick&Dirty:
#include <cstring> #include <iostream> #include <cstdlib> int main(void) { char test[] = "hallo welt"; int len = strlen(test); wchar_t wtest[len+1]; mbstowcs(wtest, test, strlen(test)); wtest[len] = '\0'; std::wstring test2(wtest); std::wcout << test2 << std::endl; return 0; }
[1]: http://www.cplusplus.com/reference/clibrary/cstdlib/mbstowcs/
Beitrag zuletzt geändert: 5.7.2010 20:11:21 von kochmarkus -
OK danke, ich werds morgen mal versuchen.
EDIT: Habs doch heute noch versuchen können.
Also so wie du meinst gings bei mir nicht. Ich musste aus der Zeile
wchar_t wtest[len+1];
diese machen
wchar_t* wstr = new wchar_t[len+1];
Vom Prinzip her fast das Selbe, aber mit deiner Version meinte der Compiler "[...] error: Konstanter Ausdruck erwartet. [...]".
Aber danke für die Hilfe
Beitrag zuletzt geändert: 6.7.2010 10:41:43 von primenic -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage