Hirdetés
- A képkockasebességet is tudja mérni az új AIDA64
- Nem indul és mi a baja a gépemnek topik
- TCL LCD és LED TV-k
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Tápokról alaposan - mélyvíz
- Milyen billentyűzetet vegyek?
- A jövőben nem csak a gazdagok kiváltsága lehet az Intel CPU-k tuningja
- Azonnali fotós kérdések órája
- OLED TV topic
- Azonnali VGA-s kérdések órája
Ú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!
- A képkockasebességet is tudja mérni az új AIDA64
- exHWSW - Értünk mindenhez IS
- Nem indul és mi a baja a gépemnek topik
- Allegro vélemények - tapasztalatok
- Gyúrósok ide!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Építő/felújító topik
- TCL LCD és LED TV-k
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- Samsung Galaxy A26 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Honor 400 Lite 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Honor Magic7 Pro 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- Honor Magic7 Pro 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- Üzletből, garanciával, Dell Latitude 5540/ i7-1365u/16GB RAM/512GB SSD
- Lenovo T14 Gen3 Ryzen5 6650U -Refurbished, Garancia!
- AKCIÓ! AMD Ryzen 7 5700X3D 8 mag 16 szál processzor garanciával hibátlan működéssel
- 27% - MSI RX 6650 XT GAMING X 8GB GDDR6 Videokártya!
- iPhone 15 Pro Max 256GB 100% (1év Garancia)- ÚJ EREDETI AKKUMULÁTOR - AKCIÓ
- Samsung Galaxy Watch6 Classic 47mm LTE, Újszerű, 1 Év Garanciaval
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

