Zeichenkette in char array fester Länge schreiben



  • ich habe ein struct geschrieben
    Adresse

    dabei will ich die straße als ein char array speichern.
    Da ich aber in der structdeklaration die länge des arrays festlegen muss,
    kann ich die staße nicht einfach zuweisen, da die länge nicht übereinstimmt.
    Wie mache ich das nun am geschicktesten mit einem char array?



  • Entweder Du nimmst char * und allokierst den Speicher dynamisch und schlägst dich damit rum, oder Du schaust Dir mal std::string an.



  • Naja ums kurz zu sagen, am besten ist es Strings mit std::string aus der STL zu definieren:

    #include<string>
    using namespace std;
    
    struct Adresse
    {
        string Name;
        string Adresse;
        string SonstWas;
    };
    

    Sie haben einen ganze Reihe von Vorteilen:

    - Du musst dich nicht ums Speichermanagement kümmern
    - Du kannst ihnen beliebig (naja fast beliebig ;)) lange Strings übergeben
    - Sie benötigen im Gegensatz zu statischen Arrays immer nur soviel Speicher wie möglich

    Du kannst sie auch ohne Probleme mit cout ausgeben und mit getline(cin,deinString) einlesen :).

    Wenn du trotzdem einen char* benötigst kannst du den mit deinString.c_str() bekommen.

    Fragen? 🙂

    MfG SideWinder


Anmelden zum Antworten