Hirdetés
- gban: Ingyen kellene, de tegnapra
- Meggyi001: Eldugott helyek Párizsban, amiket jó eséllyel még nem láttál... 3. rész
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- eBay-es kütyük kis pénzért
- GoodSpeed: Norton 360 Premium: 75GB Cloud PC Backup for 10 Devices 14.99€-ért? Igen!
- droidic: Gmail + MI: na, mi van bekapcsolva?
- Luck Dragon: MárkaLánc
Ú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!
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Apple asztali gépek
- Path of Exile (ARPG)
- PlayStation 5
- Gyúrósok ide!
- RETRO beárazás (mobil, PC, konzol)
- Kerékpárosok, bringások ide!
- LG LCD és LED TV-k
- Gumi és felni topik
- További aktív témák...
- Samsung Watch 8 Classic (46mm E-sim) garanciával
- Bomba ár! Lenovo ThinkPad L470 - i5-6GEN I 8GB I 128GB SSD I 14" FHD I Cam I W11 I Garancia!
- Bomba ár! Lenovo ThinkPad E570 - i3-7GEN I 8GB I 180GB SSD I HDMI I 15,6" FHD I Cam I W11 I Gari!
- Bomba ár! HP Elitebook 8770W - i7-3540M I 8GB I 256SSD + 750HDD I Nvidia I W10 I Cam I Garancia!
- Bomba ár! HP Elitebook 8560W - i7-2670QM I 8GB I 500GB I 15,6" HD+ I FirePro I Cam I W10 I Garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- Ulefone Armor 33 Pro
- Samsung Galaxy S24 / 8/128GB / Kártyafüggetlen / 12 Hó Garancia
- BESZÁMÍTÁS! MSI B450M R5 5600X 32GB DDR4 1TB SSD RTX 4070 12GB Rampage SHIVA Cooler Master 750W
- 164 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4090
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

