Ú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!
- Szendvics a csúcson: teszten a különleges ROG Swift PG27AQWP monitor
- Meghozta az első, memórapánikból eredő áremelését az NVIDIA
- Kiadta majd visszavonta a legújabb GeForce drivert az NVIDIA
- Gitáros topic
- OTP Bank topic
- gban: Ingyen kellene, de tegnapra
- Mini-ITX
- Xiaomi 14 - párátlanul jó lehetne
- Apple iPhone 17 Pro Max – fennsík
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- További aktív témák...
- iPhone 14 Pro Max 256GB 100% (1év Garancia)
- Új bontatlan Google Pixel Watch 4 2év garancia!
- HP Probook 6530b,14",Intel Core P8700,4GB RAM,250GB HDD,WIN10
- Lenovo Thinpad üzleti kategóriás notebookok - i5 - i7 - Ryzen - nagy választékban számlával
- MSI GeForce RTX 5090 32G LIGHTNING Z /ÚJ, BONTATLAN, CSAK HÉTFŐIG/
- APPLE MacMini 7,1,i5-4278U,8GB RAM,1TB,macOS Monterey
- Dell Latitude E7270,12.5",FHD,i7-6600U,8GB DDR4,256GB SSD,WIN11
- HIBÁTLAN iPhone SE 2020 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS4366
- 214 - Lenovo LOQ (15ARP9) - AMD Ryzen 7 7435HS, RTX 4050 (ELKELT)
- Apple iPhone 13 Pro 128GB,Átlagos,Dobozaval,12 hónap garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
