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. ==