Hirdetés
- Vezeték nélküli fejhallgatók
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Pánik a memóriapiacon
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Szünetmentes tápegységek (UPS)
- Karácsonyi ajándék a párodnak? - Ezeket nézd! 🎁
- Nagyon gyorsan búcsút mondhatunk az olcsó notebookoknak
- ThinkPad (NEM IdeaPad)
- AMD Catalyst™ driverek topikja
- Több száz játékban kezdi meg karrierjét az FSR Redstone
Ú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!
- Vezeték nélküli fejhallgatók
- Arc Raiders
- Hardcore café
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Redmi Note 14 5G - jól sikerült az alapmodell
- Pánik a memóriapiacon
- Elektromos autók - motorok
- Nagyrobogósok baráti topikja
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- iPhone topik
- További aktív témák...
- Bomba ár! Dell Latitude E7450 - i7-5GEN I 8GB I 256SSD I 14" FHD Touch I HDMI I Cam I W10 I Gari!
- Corsair Vengeance White RGB 2x16Gb 6000 cl36 bontatlan/új eladó (XMP/Expo)
- Dell Latitude 7290- I5 7 gen - 8Gb -256Gb
- Nikon D750 + 50mm f/1.4G + 24-120mm f/4G + Lowepro Mini Trekker AW szett
- GAMER PC - TUF B450, Ryzen5 5600x, Rtx 3070 8gb, 32gb DDR4, 1 TB Nvme
- Eladó igazi ritkaság! LG G7 Thinq 4/64GB / 12 hónap jótállással!
- Bomba ár! HP EliteBook 840 G6 - i5-8GEN I 16GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- JBL Quantum400 gamer fejhallgató
- REFURBISHED - Lenovo ThinkPad 40AC Thunderbolt 3 Dock
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD RX 6650XT 8GB RAMPAGE Shiva ADATA 600W
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


