Neuling sucht Hilfe bezüglich Zeiger: "char *name"



  • Hallo,

    ich habe folgende (für hier abgespeckte) Funktion:

    String modifyName(char *name)
    {
    // Was geschieht hier?
    return ????
    }

    Der an *name übergebene Text soll also in ein String-Object konvertiert und (nach Modifikation - wie auch immer) letztlich als String-Object zurückgegeben werden.
    Wie mache ich das? 😕

    Danke im Voraus!

    Andreas


  • Mod

    Das kommt ganz drauf an, was String für Konstruktoren hat. Wenn es, wie std::string aus der C++-Standardbibliothek, einen (nicht expliziten) Konstruktor hat, der genau einen zu char* kompatiblen Typen nimmt, dann einfach durch ein return name; . Falls dem, wider Erwarten, nicht so ist, dann eben durch expliziten Aufruf eines passenden Konstruktors oder sonstige Konstruktion eines passenden String-Objekts im vorherigen Verlauf. Da wir nicht wissen, was genau mit String gemeint ist, können wir das auch nicht genauer sagen.

    Ich fände es übrigens nicht nett, wenn eine Funktion ihr Argument verändert, um danach eine Kopie des veränderten Objekts zurück zu geben. Dann wäre es doch schöner, erst eine Kopie zu machen und dann diese zu verändern und das Original zu behalten. Gerade bei einem C-String ist es sowieso oft problematisch, diesen in einer Funktion verändern zu lassen.


Anmelden zum Antworten