- Samsung Galaxy A56 - megbízható középszerűség
- Milyen okostelefont vegyek?
- Poco F7 – bajnokesélyes
- OFFTOPIK: Earfun-lányok Sencsenben
- Samsung Galaxy S25 - végre van kicsi!
- Motorola Edge 50 Pro - több Moto-erő kéne bele
- Samsung Galaxy A54 - türelemjáték
- Oppo: kompakt lesz, vékony nem
- Apple iPhone 15 Pro Max - Attack on Titan
- Xiaomi 15T Pro - a téma nincs lezárva
Ú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!
- Beköszöntött az űrinternet kora
- Az AVX és AVX2 emulálásával kedvez az ARM-os gépeknek a Windows 11 frissítése
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Nintendo Switch 2
- PlayStation 5
- EA Sports WRC '23
- Brogyi: CTEK akkumulátor töltő és másolatai
- Arc Raiders
- Amlogic S905, S912 processzoros készülékek
- Építő/felújító topik
- További aktív témák...
- Lenovo Thinkpad L580, 15,6" FHD kijelző I5-8250U, 16GB DDR4, 256GB SSD, W11, Számla, 1 év garancia
- Iiyama ProLite E2607WS (26" 1920x1200)
- BESZÁMÍTÁS! HUAWEI MateBook 14 üzleti notebook - i5 1135G7 16GB DDR4 512GB SSD Intel Iris Xe IGP W11
- BESZÁMÍTÁS! Apple iPad Pro 13 2024 M4 16GB/2TB WiFi tablet garanciával hibátlan működéssel
- Gaming PC/Ryzen 9 3900x /RX6900XT/32GB RAM
- 8Gb DDR3L 1,35V 12800u 1600Mhz RAM-ok, több db
- GYÖNYÖRŰ iPhone 13 128GB Starlight- 1 ÉV GARANCIA, Kártyafüggetlen,,MS3434
- HIBÁTLAN iPhone 13 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3726
- HIBÁTLAN iPhone 13 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS37701 100% Akkumulátor
- Új és újszerű 15-16 Gamer, irodai, üzleti, készülékek nagyon kedvező alkalmi áron Garanciával!
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest