Ú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

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

-
Lortech
addikt
válasz
cellpeti
#1952
üzenetére
Mert hibás.
ok változó nem kell, ok = 0-nál return 0, felesleges továbbmenni, ha már ott látod, hogy hibás.
nincs is benne csak return 1, szóval sohasem tér vissza 0-val.
1. for ciklus
0,1,2,3 -as string indexekre fut le, az if-re 4-es indexszel kerül a vezérlés, tehát jó rendszámnál is azt fogja jelezni, hogy a megfelelő karakter nem jó, mert nem "-". if-nél feleslegesen növeled i-t is.#1955: de a legalaposabb is.
Azért bámulatos, hogy tizenx sorban hány baklövést lehet elkövetni c-ben.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Xiaomi 15T Pro - a téma nincs lezárva
- exHWSW - Értünk mindenhez IS
- Milyen HASZNÁLT notebookot vegyek?
- Samsung Galaxy Felhasználók OFF topicja
- Nem viszi sehova a Raptor Lake-et az Intel
- Milyen egeret válasszak?
- Apple MacBook
- Genshin Impact (PC, PS4, Android, iOS)
- Gyúrósok ide!
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- Lenovo Legion 7 (16ACHg6) RTX 3080 16GB VRAM, 32GB RAM
- ZOTAC 4080 SUPER AMP EXTREME AIRO 16GB - BestByte garancia 2027.11.08 - BESZÁMÍTOK
- Acer Predator Helios Neo - I9 ,1TB, RTX4060 8GB, 64GB !!!
- Gigabyte G5 KC (RTX 3060, 16GB RAM, 144Hz)
- Thermaltake Water 3.0 240 ARGB Sync Edition - komplett vízhűtés
- Lenovo Yoga PRO 9 Ultra 9 285H 32GB RAM 1TB SSD RTX 5060 8GB 16" QHD++ 120Hz OLED 3év Prémium GAR
- ÚJ Asus TUF A14 FA401 -14"2.5K 165Hz - Ryzen 7 260 - 32GB - 1TB - Win11-RTX 5060 -2 év gari - MAGYAR
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- 231 - Lenovo Legion 5 (15IRX10) - Intel Core i7-13650HX, RTX 5060 (ELKELT)
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


Azért bámulatos, hogy tizenx sorban hány baklövést lehet elkövetni c-ben.

