String Abfrage/eingabe



  • Hallo,

    Seit Tagen versuche ich mich daran einen String aus mehreren chars von der Tastatur einlesen zu lassen um ihn von einer switch Funktion verwerten zu lassen:

    #include <stdio.h>
    
    int main()
    
    {
    	char land[20] ;
    
    	printf ("\t\t H A U P T S T A E D T E   I N   E U R O P A\n\n") ;
    	printf (" Bitte Land eingeben: ") ;
    	fgets (land, sizeof land, stdin) ;
    
    	switch (land[20])
    	{
    		case 'ab':
    			printf ("a done \n \n") ;
    			break ;
    		case 'b':
    			printf ("b done \n \n") ;
    			break ;
    	}
    
    }
    

    Der Compiler gibt aber bei dieser Variante folgende Warnungen aus:

    stadt.c:16:8: Warnung: Zeichenkonstante mit mehreren Zeichen
    stadt.c: In Funktion »main«:
    stadt.c:16: Warnung: case-Marke überschreitet Maximalwert des Typs

    Meine Frage:

    Was ist die beste Möglichkeit einen charstring abzufragen und zu verwenden?

    Vielen Dank.



  • Zeile 14 (bzw. 16 nach der Compilermeldung): case 'a': <-- sollte so aussehen

    wenn du einen String vergleichen willst, dann geht das nicht mit switch ! switch funktioniert nur mit integralen Typen. Für Stringvergleiche gibt es man: strcmp (und für Suche man: strstr).


Anmelden zum Antworten