switch / case problem



  • Hallo,

    Also ich hab folgendes problem.

    switch(cEingabe[0])
         {
         case 'a':
    
              {
                  cout << "Hallo";
                  break;
              }
         }
    

    Dass funktioniert noch.

    Nun will ich aber anstatt ich a eingebe "anfang" eingeben:

    switch(cEingabe[0])
         {
         case 'anfang':
    
              {
                  cout << "Hallo";
                  break;
              }
         }
    

    Dass geht nicht mehr. Wie kann ich dass am besten realisieren?
    Is am besten von char nach int casten?

    MFG
    Exodus



  • also wenn dein cEingabe ein String ist, dann kannst du diesen nicht im switch benutzen.Das ist vom Standard so nicht vorgesehen.



  • ok also doch auf if anweisungen umsteigen? wäre die einfachste lösung nur will ich nicht nur eine ausgabe sondern mehr. Dass wird dann zu lang. gibts da irgendwelche lösungsvorschläge?

    MFG
    Exodus



  • Sicher gibt es Lösungsvorschläge 😉 Du musst uns nur sagen was du machen willst,weil ohne Informationen können wir dir nich helfen 😉



  • Wenn ich /options schreib dann soll aufgelistet werden welche optionen im programm vorhanden sind und deren erklärung.


  • Administrator

    Meinst du /options <irgendetwas> ?
    Dann mach doch eine map:

    #include <map>
    #include <string>
    
    int main()
    {
        typedef std::map<std::string, std::string> t_StringMap;
        t_StringMap MyMap;
    
        MyMap["option1"] = "This is option1!";
        MyMap["option2"] = "This is option2!\nWith a newline in the description!"
        //...
    
        std::string Option;
        // Einlesen nach Option
    
        t_StringMap::iterator Iter = MyMap.find(Option);
    
        if(Iter != MyMap.end())
        { std::cout << Iter->second << std::endl; }
        else
        { std::cout << "This option doesn't exist!" << std::endl; }
    
        // usw.
    
        return 0;
    }
    

    Ich hoffe das hilft dir weiter.

    Grüssli



  • vor allem hast du den string -> anfang
    als einzelnen char geschrieben

    'anfang'

    es soltle wenn schon "anfang" heissen...



  • kannst du mir sagen was ne map speziell is?

    mfg
    Exodus



  • Hier die referenz der map 🙂

    http://www.sgi.com/tech/stl/Map.html


  • Administrator

    Exodus155 schrieb:

    kannst du mir sagen was ne map speziell is?

    Eine Map ist ein assoziativer Container. Was bedeutet das?
    Du hast einen Schlüssel und einen Wert, welche jeweils zusammen gehören. In einer Map kannst du nun solche Schlüssel-Wert Paare speichern und mit dem Schlüssel den Wert abrufen gehen.

    Wenn du sowas wie die map noch nicht kennst, empfehle ich dir mal ein bisschen die Standardbibliothek von C++ durchzustöbern. Da hat es einige sehr hilfreiche Konstrukte.

    Als referenz für die map empfehle ich eher diese Seite:
    http://www.cplusplus.com/reference/stl/map/

    Da hat es auch noch anderes aus der Standardbibliothek, allerdings nicht alles.
    (Gibt es eigentlich irgendwo eine vollständige und übersichtliche Referenz im Inet? Weiss das jemand?)

    Grüssli



  • Dravere schrieb:

    (Gibt es eigentlich irgendwo eine vollständige und übersichtliche Referenz im Inet? Weiss das jemand?)

    Ich finde diese Seite nicht schlecht:
    http://www.cppreference.com/index.html


  • Administrator

    Nexus schrieb:

    Dravere schrieb:

    (Gibt es eigentlich irgendwo eine vollständige und übersichtliche Referenz im Inet? Weiss das jemand?)

    Ich finde diese Seite nicht schlecht:
    http://www.cppreference.com/index.html

    Die Vollständigkeit wird ganz eindeutig nicht erfüllt. Und cplusplus.com ist meiner Meinung nach übersichtlicher, was aber natürlich geschmacksache ist 😉

    Grüssli



  • Dravere schrieb:

    Die Vollständigkeit wird ganz eindeutig nicht erfüllt. Und cplusplus.com ist meiner Meinung nach übersichtlicher, was aber natürlich geschmacksache ist 😉

    Grüssli

    Sorry, ich hab zuwenig genau gelesen. Eine deinen Wünschen entsprechende Referenz kenne ich leider auch nicht...

    Ich benutze eigentlich auch eher cplusplus.com, meistens ist es wirklich übersichtlicher und es schneidet auch noch mehr Themen an. Über die einzelnen Algorithmen gibt es auch gute Beispiele und Informationen wie Zeitkomplexität etc.
    Wollte nur mal eine andere Quelle erwähnt haben 😉


Anmelden zum Antworten