string probleme bei mehreren zusammen...



  • Danke das wars problem... 1. Problem gelöst 2. ist unten 😞



  • entweder du schreibst nach den includes "using namespace std;" oder bei jedem cout "std::cout"

    das selbe gilt für "cin" und "endl" usw.



  • Wenn ich nun paar Strings zusammenziehen will kommt:

    Zeilenvorschub in Konstante << Fehler

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
    	string begruessung = " Guten Tag ";
    	string anrede = " Herr ";
    	string name = " Meier ";
    	string vorname = " Hans ";
    
    	string begruessung2 = "Hallo " + anrede + " " + vorname +" " + name "\n;
    
    	return 0;
    }
    


  • so gehts:

    string begruessung2 = "Hallo " + anrede + " " + vorname +" " + name + "\n";
    

    es fehlt nach \n ein " und davor fehlte ein +



  • Nicht ganz ... das 1. ist ein Pointer ... da geht das nicht.

    #include <iostream>
    #include <string>
    
    int main()
    {
        std::string begruessung("Guten Tag ");
        std::string anrede(Herr ");
        std::string name(Meier ");
        std::string vorname(Hans);
    
        std::string begruessung2 = begruessung + anrede + vorname + name;
    }
    


  • der operator+ ist - meines Wissens - sowohl

    std::string operator+(const char* _lhs, std::string _rhs)
    

    als auch

    std::string operator+(std::string _lhs, const char* _lhs)
    

    überladen.
    Oder was meintest du Devil?
    (wenn natürlich irgendwann mal char* neben char* steht, dann geht's nicht mehr, die Verwendung des += Operators, von stringstreams bzw. nur von Strings und nicht der Mischung aus char* und std::string wäre natürlich besser, aber rein formal ist das so korrekt.

    /Edit:
    Mal kurz VC++ angeworfen - bei mir wird das auch so anstandslos compiliert:

    std::string begruessung = " Guten Tag ";
    std::string anrede = " Herr ";
    std::string name = " Meier ";
    std::string vorname = " Hans ";
    std::string begruessung2 = "Hallo " + " Herr " + " " + vorname +" " + name + "\n";
    

    /Edit 5:
    Oh Mann, ich bin doch echt zu dumm zum tippen^^


Anmelden zum Antworten