Hirdetés
- Amlogic S905, S912 processzoros készülékek
- Milyen billentyűzetet vegyek?
- Milyen egeret válasszak?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen videókártyát?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Mini PC
- Azonnali informatikai kérdések órája
- Kivégezheti a kisebb VGA-gyártókat az NVIDIA döntése
Ú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!
- Formula-1
- Asztalos klub
- Amlogic S905, S912 processzoros készülékek
- Bittorrent topik
- Motorola Edge 60 Fusion - nem csak a forma időtálló
- Kerékpárosok, bringások ide!
- One mobilszolgáltatások
- Milyen billentyűzetet vegyek?
- BestBuy ruhás topik
- Mindenkinél több és erősebb AI gyorsítót ígér Elon Musk
- További aktív témák...
- Eladó új, bontatlan csomagolású, garanciális Sennheiser Momentum True Wireless 4 aktív zajszűrős (AN
- Sony PS VR2 + ajándék állvány
- iPhone 16 128GB récezöld 6 hónapos gyönyörű! Akkumlátor 99%! 2026 május 23-ig Apple garancia!
- 1TB Samsung 3,5"-os HDD-k (ár és állapot infók a leírásban)
- Újszerű Lenovo Legion Go 8APU1 eladó/Ryzen Z1 Extreme/512GB SSD/8.8 2560x1440 144Hz/ beszámítás van
- Samsung Galaxy S21 Ultra 5G 12/128GB Fekete / 12 hó jótállás
- Panasonic CF-XZ6 AIO all-in-one laptop tablet 2k touch i5-7300u speciális ütésálló rugged
- AKCIÓ! Lenovo Legion Go S 32GB/1TB kézikonzol garanciával hibátlan működéssel
- Mio Star 8750B Automata kávégép 6 hónap Garancia Beszámítás Házhozszállítás
- 2 db (130 / 131) - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest


