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

    Wenn 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'))
    

    😉


Anmelden zum Antworten