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 als explicit deklarierten std::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 das const Sinn.


Log in to reply