String einfügen und überprüfen

  • C++

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • String einfügen und überprüfen

    Hallo,

    ich möchte in meinem Programm eine Abfrage machen, ob der Benutzer "h", "min" oder "s" eingegeben hat.

    Das ganze sollte dann ungefähr so aussehen:

    Quellcode

    1. char eingabe;
    2. cout << "Geben Sie bitte die Einheit an.\n";
    3. cin eingabe;
    4. if(eingabe='h'){
    5. ...
    6. }
    7. else if .......


    so ungefähr siet das aus, nur dieserr Char speicher leider nur ein Zeichen, d.h. wenn ich das Wort "min" in dieser Anwendung eingebe, kommt es zu Fehlern. Ein Ausweg wäre bestimmt ein String, aber da kenne ich mich leider zu wenig aus und google konnte mir auch nicht viel helfen :(

    Vielleicht kann mir jemand dieses kleine Problem lösen.
    Danke im Vorraus!

    mfg
    Yoda2003

    edit: google hat mir folgendes ausgespcutk, zum Problem
    char eingabe[10], angeblich soll das den Char auf 10 Zeichen erhöhen, aber ich kann es dann icht mehr kompilieren und vermute dass es C ist und nicht C++ :(
  • Also, char hat so an sich das da nur ein Zeichen reingeht^^, den der Variablentyp heist ja auch "Character" was so viel bedeutet wie "Zeichen".

    Mit char eingabe[10] würdest du ein Array anlegen.

    C++ Array Tutorial

    Um zu deinem eigentlichen Problem zurückzukommen: Schau mal nach "Regulären Ausdrücken" oder "Regular Expressions" oder "RegEx". Mit RegEX steht dir wirklich ein mächiges Werkzeug zur Stringverarbeitung zur Verfügung.

    Bei Fragen zu RegEx schreib mir mal eine PN.

    mfg
    Tischler
  • Anstatt mit char würde ich eher anraten mit std::string arbeiten (da kannst wie gesagt auch "min" eingeben), das sähe dann so aus:

    Quellcode

    1. std::string str;
    2. std::cout << "Geben Sie bitte die Einheit an: ";
    3. std::getline(std::cin, str);
    4. if (str == "h") std::cout << "richtig" << std::endl;
    5. else std::cout << "falsch" << std::endl;
  • getline Ist kein Element von 'std'

    das spuckt mein compiler aus. ich programmiere in visual, kann es sein das dort der befehl anders heißt? Da mir die Methode von janine (der ich hier sehr danken möchte!!!) gefällt, würde ich sie auch gerne verwenden.

    mfg
    Yoda2003
  • Lösung in C++

    Quellcode

    1. #include <iostream>
    2. using namespace std;
    3. int main()
    4. {
    5. char eingabe;
    6. cout << "Geben Sie bitte die Einheit an.\n";
    7. cin >> eingabe;
    8. switch(eingabe)
    9. {
    10. case 'h':
    11. case 'H':
    12. cout << "Sie haben Stunden gewählt\n";
    13. //CODE
    14. break;
    15. case 'm':
    16. case 'M':
    17. cout << "Sie haben Minuten gewählt\n";
    18. //CODE
    19. break;
    20. case 's':
    21. case 'S':
    22. cout << "Sie haben Sekunden gewählt\n";
    23. //CODE
    24. break;
    25. default:
    26. cout << "Sie haben etwas Ungültiges eingegeben\n";
    27. //CODE WENN EINGABE ETWAS ANDERES WAR
    28. }
    29. return 0;
    30. }
    Alles anzeigen


    Das Programm erwartet eine Eingabe wenn sie h, m oder s entspricht wird der dazugehörende Code ausgeführt
  • das ist wohl das was du wolltest :D hätte mir deinen post besser durchlesen sollen

    C-Quellcode

    1. #include <iostream>
    2. #include <string>
    3. using namespace std;
    4. int main()
    5. {
    6. string eingabe;
    7. cout << "Geben Sie bitte die Einheit an.\n";
    8. cin >> eingabe;
    9. if(eingabe == "h" || eingabe == "H")
    10. {
    11. cout << "Sie haben Stunden gewaehlt\n";
    12. //CODE
    13. }
    14. else if(eingabe == "min" || eingabe == "MIN")
    15. {
    16. cout << "Sie haben Minuten gewaehlt\n";
    17. //CODE
    18. }
    19. else if(eingabe == "s" || eingabe == "S")
    20. {
    21. cout << "Sie haben Sekunden gewaehlt\n";
    22. //CODE
    23. }
    24. else
    25. {
    26. cout << "Sie haben etwas Ungueltiges eingegeben\n";
    27. //CODE WENN EINGABE ETWAS ANDERES WAR
    28. }
    29. system("PAUSE");
    30. return 0;
    31. }
    Alles anzeigen