- iPhone topik
- Honor Magic6 Pro - kör közepén számok
- Rövid teaserrel erősítette meg a Google a Pixel 10a érkezését
- Elmossa a Samsung a valóság és az AI-fantázia határát
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Google Pixel topik
- Garmin topik
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Samsung Galaxy S24 - nos, Exynos
Ú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!
- Parfüm topik
- iPhone topik
- Gumi és felni topik
- Spórolós topik
- Fejhallgató erősítő és DAC topik
- Honor Magic6 Pro - kör közepén számok
- Autós topik látogatók beszélgetős, offolós topikja
- Hyundai, Kia topik
- Nehézzé teszi az új Steam eszközök kiadását a memóriapánik
- Rövid teaserrel erősítette meg a Google a Pixel 10a érkezését
- További aktív témák...
- GARANCIÁLIS! Intel Ultra 7 265KF+Asus RTX5080+64GB 6000Mhz RAM+2x1TB Nvme SSD+Asus ROG B860F Wifi7
- Lenovo ThinkPad X1 Nano (Gen2)/13.0"/2160x1350/2K/IPS/i7-1260P/16GB/512GB/5G LTE/eSIM/Súly 0.966,5kg
- Dell Precision 14 5490/FHD+1920X1200/Ultra 7 165H vPro/32GB DDR5/1TB SSD/RTX 2000 8GB/ÚJ/GARANCIA
- Thinkpad X13 Gen2i 13.3" FHD+ IPS i5-1145G7 16GB 256GB NVMe gar
- XFX RX 9070 XT 16GB GDDR6 Swift Triple Fan Gaming Edition - Új, bontatlan, 2 év gari - Eladó!
- MacBook Pro 16" M1 16GB RAM 27%-os áfás számla (0231)
- Samsung Galaxy A52s 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Asus TUF F15 FX506HE FHD notebook - i5 11400H 16GB DDR4 512GB SSD RTX 3050 Ti 4GB WIN11
- 210 - Lenovo IdeaPad 5 Pro (16ARH7) - AMD Ryzen 7 6800HS, RTX 3050Ti
- 191 - Lenovo Legion 5 (15AKP10) - AMD Ryzen AI 7 350, RTX 5060 (ELKELT)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs


