Einfache Abfrage!
-
Ich habe mir eine kleine Abfrage geschrieben die aber aus unerklärlichen Gründen irgendwie net funzen will!
Vielleicht kann mir einer helfen??if ((argv[1] == "9") || (argv[1] == "8") || (argv[1] == "7") || (argv[1] == "6") || (argv[1] == "1")) { (Tue das und das) }
-
Da geht nicht weil du mit == nur die Pointer vergleichen würdest, oder so ähnlich
versuchs mal mit strcmp(argv[1],"9") liefert 0 wenn genau gleich
-
Oder if(argv[1][0] //Erstes Element
== '9'...Also den char wert
-
Ja erstmal danke!
Nur jetzt taucht das nächste krumme Ding auf!
if ((argv[1] == "9") || (argv[1] == "8") || (argv[1] == "7") || (argv[1] == "6") || (argv[1] == "1")) { (Tue das und das) }
Wieso geht er bei der Eingabe von z.B 9,9999 oder auch 1.111
in den (Tue das und das) Block????9,9999 ist nicht gleich 9!!!!
1.1111 ist nicht gleich 1!!!!????????
-
musst du 'strcmp' nehmen und nicht nur das erste zeichen testen.
-
also meinst du so:
----> (strcmp (argv[1],"0")aber wenn du sagst "nicht nur das erste Zeichen"
dann müsste es ja so aussehen aber das geht nicht!----> (strcmp (argv,"0")
-
hier mal ein beispiel (ungetestet)
#include <string.h> #include <stdio.h> #include <stdlib.h> // durchsucht alle eingaben nach 9.9999 void main (int a, char **s) { while (--a) { if (strcmp (*++s, "9.9999") == 0) { puts ("found!!!"); exit (0); } } puts ("not found!!!"); }