Hirdetés
- Luck Dragon: Óraátállítás
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- Real Racing 3 - Freemium csoda
- bobalazs: i5 4690 + RX 460 HTPC
- Mr Dini: Mindent a StreamSharkról!
- NvidiaRTX: Xiaomi Electric Scooter 6 Max: Az első rollerem
Új hozzászólás Aktív témák
-
Jester01
veterán
válasz
CPT.Pirk
#2217
üzenetére
Ha bővebbet tudnál mutatni a linuxos hibáról akkor abban esetleg tudnánk segíteni.
Ami a kódot illeti: az i,j,len változókat kirakni globálisba nem szép dolog, tedd őket bele az strLen függvényedbe. Az if (i==1) len=0 felesleges mivel ha nem volt argumentum a len úgyis nulla. Az i-t ellenőrizni pedig megtévesztő, hiszen tulajdonképpen az argc-t akarod vizsgálni (persze az értéke ugyanaz lesz, csak logikailag gubancos).
Továbbá szebb lenne, ha a kiírás nem az strLen-ben lenne, hanem a main-ben az strLen visszatérési értéke alapján.
Ha jól értem a logikát, akkor az argumentumok között egy szóközt feltételezve korrigálod a hosszt. Ez ugye addig jó amíg tényleg annyi van. Ha a felhasználó egyetlen argumentummal futtatja akkor nyilván jó eredményt fog adni egyébként.
$ cat >test.c
#include <stdio.h>
int strLen(int argc, char *argv[]) {
int i, j, len = 0;
for (i = 1; i < argc; i++)
for (j = 0; argv[i][j]; j++)
len++;
if (argc > 2) len += argc - 2;
return len;
}
int main(int argc, char *argv[]) {
printf("hossz: %d\n", strLen(argc, argv));
return 0;
}
$ gcc -Wall -O2 test.c
$ ./a.out hello world
hossz: 11
$ ./a.out "hello world"
hossz: 11
$ ./a.out hello world
hossz: 11
$ ./a.out "hello world"
hossz: 13
Ú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!
- Eladó Konfig I7 6700 16GB DDR4 480GB SSD RX5700 8GB!
- HP EliteDesk 800 G4 SFF,i3-8100,8GB DDR4,256GB SSD,WIN11
- AlzaErgo ErgoArm D05B Tube - Akár 2db 32" monitorhoz
- Lenovo Thinkcentre M720s SFF,i3-8100,8GBDDR4,256GB NVMe SSD,WIN11
- Wacom Cintiq Pro 16 (4K) rajzmonitor teljes szett + Parblo állvány + Rajzkesztyű Újszerű állapotba
- új NAGYakku!!! 6-10óra üzemidő, 5G! Dell Latitude 5330 i3-1215U - 16GB 512GB 13.3" FHD 1 év gar
- White GAMER PC! Ryzen 7800X3D / RTX 4080 / 32GB DDR5 / 1TB NVMe / 1000w Gold / BeszámítOK !
- Honor 200 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- Azonnali készpénzes AMD Ryzen 1xxx 2xxx 3xxx 5xxx processzor felvásárlás személyesen / csomagküldés
- 171 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080 (ELKELT)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
