Hirdetés
- Telekom mobilszolgáltatások
- Samsung Galaxy Watch6 Classic - tekerd!
- Fele annyit ér az iPhone Air, mint amennyibe pár hete került
- Netfone
- Milyen okostelefont vegyek?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- iPhone topik
- Kicsomagoljuk és bemutatjuk a Poco F8 Ultrát
- Apple iPhone 16 Pro - rutinvizsga
- Poco F8 Ultra – forrónaci
Ú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!
- XBOX 360 + Kinect 500GB HDD + 2db. gyári kontroller 111db. játék telepítve
- Kezdő Gamer PC-Számítógép! Csere-Beszámítás! I5 7500 / 32GB DDR3 / RTX 2060 6GB / 512GB SSD
- Abit alaplapos Tricod házas Retro számítógép 2004-ből és hardver csomag
- PS5 dualsense kontroller hibátlan
- 2 db Xbox One kontroller Venom akkuval
- Samsung Galaxy Ring 12mm, 1 Év Garanciával
- BESZÁMÍTÁS! MSI B450M R5 5600X 32GB DDR4 512GB SSD RTX 3080 10GB ZALMAN Z1 Plus Cooler Master 750W
- REFURBISHED - DELL Thunderbolt Dock WD19TBS (210-AZBV)
- BESZÁMÍTÁS! MSI B450M R5 5600X 32GB DDR4 512GB SSD RTX 3070 8GB Zalman Z1 PLUS Cooler Master 700W
- REFURBISHED - HP USB-C Universal Dock G1 (DisplayLink)
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest


