- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Magisk
- One mobilszolgáltatások
- Samsung Galaxy Ring - gyűrű-kúra
- Samsung Galaxy S25 Edge - a tegnap határán
- Motorola Edge 40 - jó bőr
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Sony Xperia 1 V - kizárólag igényeseknek
- Fotók, videók mobillal
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
Ú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!
- eBay-es kütyük kis pénzért
- TCL LCD és LED TV-k
- Építő/felújító topik
- Anime filmek és sorozatok
- Szünetmentes tápegységek (UPS)
- alza vélemények - tapasztalatok
- Elektromos autók - motorok
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Házimozi belépő szinten
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- További aktív témák...
- HP EliteBook 830 G8 i5-1135G7 16GB 256GB 1 év garancia
- iKing.Hu - Apple iPhone 15 Plus Black Használt, karcmentes 256 GB tárhely 3 hónap garancia!
- LG 27CN650N-6A - Felhő Monitor - 1920x1080 FHD - 75Hz 5ms - USB Type-C - Quad Core - BT + WiFi
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Precision 5810 Intel E5-1650 v3 128GB RAM 2x512GBHDD 1x512GB SSD Quadro K4200
Állásajánlatok
Cég: FOTC
Város: Budapest