if isdigit
-
Hallo,
if(isdigit(argv[1][0])==0 && strcmp(argv[1],"-h")==1 && strcmp(argv[1],"-a")==1 && strcmp(argv[1],"-d")==1)
Ich möchte, dass die if abrage erfolgreich ist wenn:
argv[1] != "-h","-a","-d" und argv[1][0] keine zahl ist.Leider wird aber z.B. -2 als zahl gewertet, obwohl argv[1][0] eigentlich "-" und somit keine Zahl wäre.
Wenn ich also zusätzlich argv[1][0] auf '-' überprüfe funktioniert das auch nicht.
Ich komme einfach nicht in if rein.if((isdigit(argv[1][0])==0 || argv[1][0]=='-') && strcmp(argv[1],"-h")==1 && strcmp(argv[1],"-a")==1 && strcmp(argv[1],"-d")==1)
mfg
-
isdigit(X)==0
Das prüft, ob X [/i]keine[/i] Ziffer ist.
-
Hallo,
Genau das soll es auch. Das Problem liegt beim -.
mfg
-
symbian schrieb:
Ich möchte, dass die if abrage erfolgreich ist wenn:
argv[1] != "-h","-a","-d" und argv[1][0] keine zahl ist.Leider wird aber z.B. -2 als zahl gewertet, obwohl argv[1][0] eigentlich "-" und somit keine Zahl wäre.
Wenn ich also zusätzlich argv[1][0] auf '-' überprüfe funktioniert das auch nicht.
Ich komme einfach nicht in if rein.
mfgWenn argv[1] == "-h" dann ist argv[1][0] == '-' und argv[1][1] == 'h' usw.
argv[1][0] darf '-' sein, weil Vorzeichen ? aber keine Zahl
und wenn Vorzeichen, dann argv[1][1] keine Zahl - richtig?if ((!isdigit((int)argv[1][0]) && argv[1][0] != '-') || (argv[1][0] == '-' && !isdigit((int)argv[1][1]) && argv[1][1] != 'h' && argv[1][1] != 'a' && argv[1][1] != 'd'))