Hirdetés

Új hozzászólás Aktív témák

  • Jester01

    veterán

    válasz cellpeti #1952 üzenetére

    Talán mert van vele némi probléma :K
    Pl. az első ciklusod <=3 feltéle már a kötőjelet is nézi, tehát amiatt kapásból hibás lesz minden jó rendszám is. Ugyanezen feltétel esetleg túl is címez a stringen, ha az nincs is 4 karakter. A kötőjel ellenőrzésnél i-re hivatkozni nem túl jó ötlet, ha egyszer azt akarod ellenőrizni, hogy a 4. karakter kötőjel-e, akkor azt írd oda (most ugye a hibás ciklusfeltétel miatt az i itt 4 lesz, tehát az ötödik karaktert nézed). A "-" az string konstans nem pedig karakter, és a feltételben kicsit sok a felkiáltójel.

    A legrosszabb pedig az, hogy a végén fixen "return 1" van, akármi is az ok változó értéke.

    Lehetséges javítás:

    int rendszam(const char* s)
    {
    if (!s || strlen(s) != 7 || s[3] != '-') return 0;
    for(i=0;i<3;i++)
    {
    if(!isupper(s[i]) || !isdigit(s[i+4])) return 0;
    }
    return 1;
    }

    MOD: jó hát én voltam a leglassabb :B

    [ Szerkesztve ]

    Jester

Új hozzászólás Aktív témák