string to int?



  • Hallo.

    Gibt es eine einfache und kurze Variante, einen std::string schnell in eine int-zahl zu konvertieren? Ohne Weitere Bibliotheken? Es sollte möglichst kurz und verständlich sein. Könnt ihr mir da helfen?



  • #include <sstream>
    
    std::stringstream ss;
    std::string str = "-45";
    int number;
    ss << str;
    ss >> number;
    


  • oder mittels atoi, welches aber nicht zu bevorzugen ist da "C" und nicht "C++"...

    http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/



  • HighLigerBiMBam schrieb:

    oder mittels atoi, welches aber nicht zu bevorzugen ist da "C" und nicht "C++"...

    Nicht aus diesem Grund, sondern eher, weil die Funktion z.B. Fehler nicht wirklich anzeigen kann.

    Ad aCTa schrieb:

    #include <sstream>
    
    std::stringstream ss;
    std::string str = "-45";
    int number;
    ss << str;
    ss >> number;
    

    Wobei es einfacher ist, direkt den Konstruktor zu verwenden. Dann reicht auch std::istringstream .

    std::string str = "-45";
    std::istringstream ss(str);
    int number;
    ss >> number;
    


  • Incocnito schrieb:

    Hallo.

    Gibt es eine einfache und kurze Variante, einen std::string schnell in eine int-zahl zu konvertieren? Ohne Weitere Bibliotheken? Es sollte möglichst kurz und verständlich sein. Könnt ihr mir da helfen?

    Ein wichtiger Tip bei solchen Fragen:
    Du kannst schnell drauf kommen, dass das sicher ein Problem ist, was des öfteren auftaucht. Wenn du auf Anhieb (Buch, google, ...) keine Lösung gefunden hast, darfst du auch annehmen, dass auch andere die gleiche Frage stellen würden. Eine häufig gestellte Frage heißt auf englisch "frequently asked question" - kurz FAQ. Dafür haben wir hier ein extra Forum.
    Um es kurz zu machen: schau bei solchen Fragen bitte immer zuerst ins FAQ-Forum. Wenn dort die Antwort steht, sparst du dir Zeit (die du auf die Antwort wartest) und uns ersparst du es, zum (n+1)ten Mal die selbe Antwort zu schreiben.



  • Man sollte aber auch nicht ohne weiter drüber nachzudenken die IO von C und C++ mischen, denn da kann man schnell Probleme mit der locale bekommen.



  • pumuckl schrieb:

    ...

    WObei die Eingabe "C++ string to int" bei Google gleich auf der ersten Seite fast ausschließlich brauchbare Lösungen liefert.


Log in to reply