Auswahl STRING



  • Ich programmiere mit C++.NET. In einer STRING-Variable habe ich max. 5 verschiedene Texte abgelegt: "Gestört" oder "Ungestört" .... Eine Auswahl was in der Variable steht mit der switch-Anweisung geht ja nicht. Eine IF Verzweigung mit 5 verschiedenen Möglichkeiten ist mir zu aufwendig. Hat Jemand eine einfachere Möglichkeit? Der Ausdruck in der IF Anweisung mit (Variable=="Gestört") funktioniert nicht. Nur wenn ich die Variable in ein CString ändere funktioniert es.

    Für einige Hinweise wäre ich sehr dankbar.

    Georgio



  • Du könntest z.b. ein Map benutzen

    map<StringTyp,int> str_to_case;
    strings["Gestört"] = 0;
    strings["Ungestört"] = 1;
    strings["Abgelenkt"] = 2;
    strings["Zufrieden"] = 3;
    strings["Genervt"] = 4;
    

    und das dann so verwenden:

    case(str_to_case[str])
    {
      case 0: 
             do_foo(); 
             break;
      case 1: 
             do_bar(); 
             break;
    ...
    };
    

    Aber soviel weniger arbeit ist das nun auf wieder nicht (im gegensatz zu den if/else if zeugs) 😃

    Aber vielleicht bringt dich das ja zumindest auf eine Idee wie du es machen würdest.
    Ich persönlich hätte kein Problem damit 2 Zeilen mehr zu schreiben.

    BR



  • Was ist denn "STRING" und was ist "IF"!? Diese kennen ich im zusammenhang mit C++ nicht...
    String-Vergeliche löst man im "normalen" C mittels strcmp...
    In C++/CLI mit String::Comapre bzw. ==


Anmelden zum Antworten