- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Nagy aksival és erős hardverrel megjött Magyarországra a Poco X8 Pro és Pro Max
- Samsung Galaxy Watch7 - kötelező kör
- Xiaomi 17 - még mindig tart
- Motorola Moto G06 Power – nagyfater új zakót vett
- Azonnali navigációs kérdések órája
- Poco F8 Pro – titkos favorit lehet belőle
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
Ú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!
- SSD kibeszélő
- Lexus, Toyota topik
- Autós topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Le Mans Ultimate
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Trollok komolyan
- Nagy aksival és erős hardverrel megjött Magyarországra a Poco X8 Pro és Pro Max
- Bluetooth hangszórók
- AliExpress tapasztalatok
- További aktív témák...
- Ú, bontatlan, iPhone 16 Pro gyárilag kártya-független, apple világgaranciával
- FPS-gyilkos szörny I7 + RX 9060XT 16GB + prémium minden + garancia / számla
- Samgung Galaxy Tab S9 szürke 12GB/256GB (+ érintőceruza +bézs, +fekete tok +billentyűzet, touchpad)
- Macbook Air 13" - 2019 gyártás, 2 mag i5, 8/512GB, touch ID - garancia (14)
- Macbook Air 13" - 2019 gyártás, Intel i5, 8/128GB - garancia (118)
- HIBÁTLAN iPhone 15 Plus 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4504
- 265 - Lenovo ThinkBook 16 (G6 ABP) - AMD Ryzen 5 7530U, no GPU
- Nintendo Switch Lite
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- Lenovo T480S i5 8350U, 16GB RAM, 256GB SSD, jó akku, számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

