Problem mit char * und string
-
Hallo wie kann ich *var nach str bekommen ?
#include <iostream> using namespace std; int main(int argc, char* argv[]) { char * var = "abc"; string str; system("PAUSE"); return 0; }
-
Oops hab was vergessen
#include <iostream> #include <sstream> using namespace std; int main(int argc, char* argv[]) { char * var = "abc"; string str; stringstream v; v << var; v >> str; cout<< str; system("PAUSE"); return 0; }
So hab ich es jetzt gemacht gibt es da noch eine bessere Lösung für ?
-
Wie wärs mit Dokumentation anschauen? Bei
string
unter Konstruktoren.Es wird zwar gleich jemand die Lösung posten, aber du solltest dir dennoch angewöhnen, solche Fragen zur Standardbibliothek zuerst nachzuschlagen.
-
Würde ich ja gerne Nachschlagen wenn ich wüsste wie und wo ich suchen muss.
Aber das weiss ich leider nicht.
Ich habe mir gerade mal das angeschaut was du mir gesagt hast ( Bei string unter Konstruktoren gucken ).
Jetzt habe ich so gelöst.
#include <iostream> using namespace std; int main(int argc, char* argv[]) { char * var = "abc"; string str ( var ) ; cout << str ; system("PAUSE"); return 0; }
-
Genau so.
Was hier (wegen dem nicht alsexplicit
deklariertenstd::string
-Konstruktor) auch geht, wäre das:std::string str = var;
Übrigens würde ich
char* var = "abc";
durch
const char* var = "abc";
ersetzen (für ein anderes Mal). Die erste Form ist veraltet und existiert nur aus Kompatibilitätsgründen. Jedoch ist es niemals erlaubt, ein Stringliteral wie
"abc"
zu beschreiben, daher macht dasconst
Sinn.