Was sollten code geschrieben werden, zu akzeptieren groß-und Kleinbuchstaben Entscheidungen?
Ich bin Anfänger in c++ und schreiben ein Programm, das akzeptiert der Benutzer Entscheidungen und Handlungen nach...mein problem ist nur, wenn der Benutzer Großbuchstaben Wahl...das Programm behandelt, da es eine falsche Wahl...wenn 'e' war eine Wahl, die für Sie eine Nummer eingeben..wenn die vom Benutzer eingegebenen 'E' das Programm zeigt auch nicht den "geben Sie die Nummer" angezeigt..wie kann ich es beheben ? ich versuchte mein bestes, aber ich kann es nicht wieder arbeiten.. Oh , und wie kann ich Großbuchstaben in der Switch-Case-Anweisungen ?
Dies ist der Teil des Codes, der verantwortlich ist, der unter der Auswahl des Benutzers und entsprechend handeln es.
#include <iostream>
#include <cstring>
using namespace std;
int main(){
char choice ;
for(;;){
do{
cout << endl ;
cout << "(e)nter." << endl ;
cout << "(d)isplay." << endl;
cout << "(u)pdate." << endl ;
cout << "(r)eset. " << endl;
cout << "(q)uit." << endl;
cout << endl;
cout << "Choose one : " ;
cin >> choice ;
if( !strchr("edurq",choice) && (choice>=97&&choice<=122) ){
cout << "Enter e,d,u or q " << endl;}
else if( !strchr("EDURQ",choice) && (choice<97&&choice>122) ){
cout << "Enter E,D,U or Q " << endl;}
}while( !strchr("edurqEDURQ",choice) );
switch (choice) {
case 'e' : enter(); break ;
case 'd' : display(); break ;
case 'u': update() ; break ;
case 'r' : reset() ;break;
case 'q' : return 0;
}
}
}
!strchr("EDURQ",choice) && (choice<97&&choice>122)
: nichts kann sowohl<97
und>122
, ist es nicht redundant mit denstrchr
rufen sowieso ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht brechen, für einen Fall in einer switch-Anweisung übereinstimmt, wird es weiter auf die nächste. Wenn Sie die Hauptstadt Fällen vor jedem Kleinbuchstaben die Wahl wird fallen durch.
Die andere option ist die Anwendung einer string-Funktion, um die Eingabe des Benutzers zu ändern, um die Kleinschreibung, in diesem Fall Ihre bestehende switch-Anweisung funktionieren würde.
Verwenden Sie die tolower-Funktion konvertieren Sie Ihre Eingabe in Kleinbuchstaben, und dann werden Sie nur brauchen, um über die Kleinbuchstaben Optionen.
Dies ist eine perfekte Zeit, um zu verwenden, fallen durch in case-Anweisungen.
Groß-und Kleinbuchstaben verwenden verschiedenen Zeichen-codes. Also, wenn Sie verwenden Sie nur Kleinbuchstaben Fällen in Ihrem zu wechseln, Sie testen nur eine Art von Fällen.
Sollten Sie entweder verbessern Sie Ihre switch-Anweisung testet, wie das andere verkörperte, oder konvertieren Sie Ihre
choice
Zeichen in Kleinbuchstaben um. Auf diese Weise machen Sie sicher, dass Sie den zu erwartenden Fall für Ihre switch-tests.Hack es