- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Életlen svájcibicska: Teszten az LG 45GX90SA okos gamer monitor
- TCL LCD és LED TV-k
- Kormányok / autós szimulátorok topikja
- Androidos tablet topic
- Apple asztali gépek
- Projektor topic
- Milyen TV-t vegyek?
- Dell notebook topic
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
Ú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!
- Telekom mobilszolgáltatások
- Spórolós topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Beletenyerelnek a memóriaárak a mobileladásokba
- Életlen svájcibicska: Teszten az LG 45GX90SA okos gamer monitor
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Hardcore café
- Háztartási gépek
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- TCL LCD és LED TV-k
- További aktív témák...
- MSI Thin 15 B12UC - 15.6"FHD 144Hz - i5-12450H - 16GB - 512GB - Win11 -RTX 3050 - 3 év gari , MAGYAR
- Prémium fejhallgató kábel ( Focal, Denon)
- 15.gen! Intel Core ULTRA 5 245KF (5800X3D-t veri) +wifis lap +16-32GB DDR5 RAM! GAR/SZÁMLA (nevedre)
- Üzleti kategóriás laptopok, asztali számítógépek, alkatrészek,garanciával, ZoliLaptop.hu
- Pioneer PD-S601 asztali CD lejátszó
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


