Wie deklariere ich einen Pointer auf String??



  • Hallo liebe Gemeinde.

    Für die Profis unter euch wird die folgende Frage lapidar sein, aber wie deklariert man in C++ auf einen String??

    Hier ein Beispiel:

    #include<iostream>
    #include<string>
    using namespace std;
    
    int main()
    {
      std::string Wort;
    
      cout << "Geben Sie ein Wort ein!\n";
      getline(cin, Wort);
    
      cout << "\n";
    
      cout << "Das haben Sie eingegeben: " << Wort << "\n";
    
      return 0;
    }
    

    Wie muss ich nun einen Pointer deklarieren, damit ich an die Adresse des Wortes komme?

    Ich kann ja schlecht

    char *pWort;
    

    deklarieren.....

    Ich hoffe, ihr versteht mich?

    Vielen Dank für die Antworten im Voraus.

    Gruß

    Max


  • Mod

    silent_max schrieb:

    Ich hoffe, ihr versteht mich?

    Nein. Zeig mal Code, was du dir vorstellst. Ich wage mal einen Schuss ins Blaue:
    Du suchst
    http://en.cppreference.com/w/cpp/string/basic_string/c_str
    oder
    http://en.cppreference.com/w/cpp/string/basic_string/data



  • SeppJ schrieb:

    Zeig mal Code, was du dir vorstellst.

    Meine Frage bezieht sich ja auf den obigen Code...

    Nämlich wie ich einen Pointer auf das eingegebene Wort zu deklarieren bzw. zu benutzen habe...


  • Mod

    silent_max schrieb:

    SeppJ schrieb:

    Zeig mal Code, was du dir vorstellst.

    Meine Frage bezieht sich ja auf den obigen Code...

    Nämlich wie ich einen Pointer auf das eingegebene Wort zu deklarieren bzw. zu benutzen habe...

    Und meine Gegenfrage bezieht sich darauf, was du damit machen möchtest. Ein Pointer auf Wort ist

    string *p = &Wort;
    

    Da das herzlich sinnlos ist, vermute ich mal stark, dass du das nicht gemeint hast, obwohl du danach gefragt hast.



  • SeppJ schrieb:

    Und meine Gegenfrage bezieht sich darauf, was du damit machen möchtest. Ein Pointer auf Wort ist

    string *p = &Wort;
    

    Da das herzlich sinnlos ist, vermute ich mal stark, dass du das nicht gemeint hast, obwohl du danach gefragt hast.

    Doch, das habe ich damit gemeint...

    Und ich gebe mir gleich eine Kopfnuss dafür, da es eigentlich logisch ist...

    Wenn ich schon mit

    std::string Wort
    

    verwende, dann muss der Zeiger auch vom Typ string sein.

    Warum ist das eigentlich herzlich sinnlos??



  • Was willst du denn mit dem Zeiger machen?


  • Mod

    silent_max schrieb:

    Warum ist das eigentlich herzlich sinnlos??

    Warum möchtest du einen Zeiger auf irgendetwas? Das allein ist schon suspekt, ganz besonders wenn es von dir kommt. Aber einen Zeiger auf einen Container? Das ist praktisch immer Unsinn.



  • @cooky451

    Ich wollte einfach die Adresse des Wortes ausgeben... nicht mehr und nicht weniger.

    SeppJ schrieb:

    Das allein ist schon suspekt, ganz besonders wenn es von dir kommt.

    Was soll das denn schon wieder heißen....



  • Die Adresse des Worts, also des Speichers, in dem dein Wort steht, ist aber eine andere. Falls du wirklich nur die Adresse der Variable Wort ausgeben wolltest, ja, das geht so, auch wenn ich den Sinn nicht sehe.



  • Nachdem ich dieses Beispiel hier im Internet gefunden habe

    #include <iostream>
    using namespace std;
    
    int main()
    {
      char * s = "Joe"; 
      cout << s << endl;
    
      s = "Frederick"; 
      cout << s << endl;
    
      return 0;
    }
    

    (dieses Beispiel gibt es wirklich auf http://www.cplusplus.com/forum/beginner/13343/)

    wollte ich einfach wissen, wie das mit Pointern auf Strings aussieht, ob ich die Adresse des Wortes ausgeben kann....



  • Ach drück dich ma klar aus! Was meinst du mit "Adresse des Wortes"? Die Adresse von der Variable Wort, oder wie oder was?

    #include <iostream>
    using namespace std;
    
    int main()
    {
      std::string s = "Joe";
      cout << s << endl;
    
      s = "Frederick";
      cout << s << endl;
    
      return 0;
    }
    

    in dem Sinne kann man s auch als "Adresse des Wortes" sehen.

    Ansonsten ist

    s.data()
    

    auch ne "Adresse des Wortes".

    Allerdings ist dein Rechner insgsamt auch irgendwie die "Adresse des Wortes"

    hmm ... :xmas1:


  • Mod

    silent_max schrieb:

    SeppJ schrieb:

    Das allein ist schon suspekt, ganz besonders wenn es von dir kommt.

    Was soll das denn schon wieder heißen....

    Das soll heißen, dass ich dich mittlerweile einschätzen kann. Du bist totaler Anfänger, das schon seit Wochen ohne jede Verbesserung. Das einzige was du dir anzusehen scheinst sind irgendwelche schrottigen Internettutorials in denen du irgendwelchen C-mit-cout-Müll lernst, woduch du bloß noch schlechter wirst. Daher weiß ich, wenn du nach irgendwas mit Pointern fragst, dass du nichts gutes vor hast.



  • SeppJ schrieb:

    Das soll heißen, dass ich dich mittlerweile einschätzen kann. Du bist totaler Anfänger, das schon seit Wochen ohne jede Verbesserung. Das einzige was du dir anzusehen scheinst sind irgendwelche schrottigen Internettutorials in denen du irgendwelchen C-mit-cout-Müll lernst, woduch du bloß noch schlechter wirst. Daher weiß ich, wenn du nach irgendwas mit Pointern fragst, dass du nichts gutes vor hast.

    Sage das nicht mir, sondern meinem Dozenten...

    Von wem soll ich es denn sonst lernen?

    Edit:

    Ich kann nur das, was mir beigebracht wird. Leider bin ich dem nach auf Tipps von euch angewiesen. Wenn Du SeppJ oder sonst jemand etwas dagegen hat, dann bitte jetzt sagen bzw. schreiben...



  • silent_max schrieb:

    SeppJ schrieb:

    Das soll heißen, dass ich dich mittlerweile einschätzen kann. Du bist totaler Anfänger, das schon seit Wochen ohne jede Verbesserung. Das einzige was du dir anzusehen scheinst sind irgendwelche schrottigen Internettutorials in denen du irgendwelchen C-mit-cout-Müll lernst, woduch du bloß noch schlechter wirst. Daher weiß ich, wenn du nach irgendwas mit Pointern fragst, dass du nichts gutes vor hast.

    Sage das nicht mir, sondern meinem Dozenten...

    Von wem soll ich es denn sonst lernen?

    Edit:

    Ich kann nur das, was mir beigebracht wird. Leider bin ich dem nach auf Tipps von euch angewiesen. Wenn Du SeppJ oder sonst jemand etwas dagegen hat, dann bitte jetzt sagen bzw. schreiben...

    Kauf dir gute Bücher wie "Thinking in C++", lern es richtig und setz deinem Dozenten nur vor was er sehen will. Der Großteil der sogenannten Professoren ist auf halbgarem C mit Klassen sitzengeblieben und unfähig sich an aktuelle Programmierstandards anzupassen.



  • Also langt "Der C++ Programmierer" nicht aus?



  • silent_max schrieb:

    Also langt "Der C++ Programmierer" nicht aus?

    Hab ich nicht gelesen kann ich nix zu sagen^^. Ausserdem bin ich gut genug um Bücher über C++ zu beurteilen :). Das Buch das ich genannt habe wird aber in allen relevanten Foren empfohlen.



  • Ich kenne das Buch nicht, nur den Autor.

    silent_max schrieb:

    Also langt "Der C++ Programmierer" nicht aus?

    Doch bestimmt, aber lies die einzelnen Kapitel Seiten so oft, bis du sie auch verstehst.



  • Aber lesen ist die eine Seite ...

    Zu kapieren jedoch die andere...

    Und für mich gehört nun mal das verstehen über programmieren, programmieren, programmieren...

    Und da manchmal das Verständnis, zumindest bei mir, nicht mit macht, dann frägt man doch normal nach...

    Oder ist schon mal ein Meister vom Himmel gefallen?



  • Verlangt auch keiner :).
    Nimms nicht so ernst, manchen ist das alles hier etwas zu Kopf gestiegen hehe.


  • Mod

    Das soll ja auch keine Beleidigung sein (falls dies so rüber kam, bitte ich dies zu entschuldigen), sondern eine objektive Feststellung deines Kenntnisstandes. Sie stimmt doch auch, oder?


Anmelden zum Antworten