- Így VERNEK ÁT a KAMU webshopok!
- VR topik (Oculus Rift, stb.)
- A SAMA jóvoltából konkurenciája jött a Thermalright léghűtéseinek?
- Sony MILC fényképezőgépcsalád
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Milyen Android TV boxot vegyek?
- Vezeték nélküli fülhallgatók
- Milyen videókártyát?
- Házimozi belépő szinten
- Milyen egeret válasszak?
Hirdetés
Ú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!
- Opel topik
- Kerékpárosok, bringások ide!
- PlayStation 1 / 2
- A lemondást javasolja az Intel vezetőjének Donald Trump
- Így VERNEK ÁT a KAMU webshopok!
- VR topik (Oculus Rift, stb.)
- Építő/felújító topik
- A SAMA jóvoltából konkurenciája jött a Thermalright léghűtéseinek?
- Könyvajánló
- Battlefield 6
- További aktív témák...
- iKing.Hu - Motorola Razr 40 Ultra Glacier Blue 8 GB RAM / 256 GB tárhely Használt, karcmentes
- iPhone 13 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3057, 95% Akkumulátor
- LG 27UP850NP-W - 27" IPS LED - 3840x2160 4K - DisplayHDR 400 - USB Type-C - AMD FreeSync
- Eladó karcmentes Realme 8 4/64GB / 12 hó jótállással
- Telefon felvásárlás!! Samsung Galaxy A20e/Samsung Galaxy A40/Samsung Galaxy A04s/Samsung Galaxy A03s
Állásajánlatok
Cég: FOTC
Város: Budapest