Kezdőoldal » Számítástechnika » Programozás » C-ben hogyan lehet megszámolni...

C-ben hogyan lehet megszámolni, hogy egy sorban hány karakter van?

Figyelt kérdés
egy file-ból beolvasunk egy több sórból álló szöveget. Hogyan tudnám megszámolni, hogy egy sórban hány karakter van?
2010. jan. 3. 17:42
 1/6 anonim ***** válasza:
100%
Beolvasod a sort egy karaktertömbbe, ráállítasz egy mutatót a tömb elejére (az első karakterra) és egy ciklussal végiglépkedsz a tömbön (növeled a mutató értékét), mindaddig amíg a karakter, amire a mutató mutat nem a '\0' karakter. (A C-ben minden sztringet \0 zár). A ciklus törzsében növelgetsz egy változót, melynek értéke a ciklus befejeződése után az a szám lesz, ahány karakter volt a beolvasott sorban.
2010. jan. 3. 17:50
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

egyszerű while ciklus(eof -ig) és getchar függvénnyel csinálnám, egy változó amit léptetek soronként amig el nem éri a sor végét ('\n')...

vagy ha nagyon profi akarok lenni akkor fgets vagy fscanf -el bezúzom az egész sort egy bufferbe ami pl 1000 nagyságú char tömb (vagy dinamikus, de akkor már tényleg nagyon ráérős vagyok) és csak strlength-el kikérem a hosszát...csókolom. Attól függ mennyire fontos ez a mozzanat a program futásában...én felváltva használok fget(), fscanf() és getchar()-t is, attól függően mire kell, pedig, ha jó vagy elég csak az egyik...de én biza lusta vagyok, megnézem melyikkel szívom a legkevesebbet a paraméterezésnél, meg utána a feldolgozásnál.


De ha kicsit jobban körülnézel a string.h környékén sok szépséget találhatsz még :)

2010. jan. 3. 18:40
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
köszi a válaszokat...ahogy az első mondta úgy csináltam és működik. Azért köszi a másodiknak is.
2010. jan. 3. 19:13
 4/6 anonim ***** válasza:

:) egyszerűbbnek hangzik ahogy leírta az biztos:)

bár a for ciklusát sztem kicserélném egy strlenght-re, mert fölösleges procipazarlás...ciklus végig és még közben hasonlítás is...na mind1,nem ez a lényeg, hanem, h működik...nem nagyon fogtok több millió soros szöveget bedolgozni sztem ahol ez már számítana XD

2010. jan. 3. 21:53
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Az első vagyok és az előzőnek üzenem:

Ha meghívod az strlen függvényt, akkor az szerinted mit csinál? Ugyanazt amit én leírtam, tehát erőforrásügyileg nem lassúbb (sőt ha figyelembevesszük hogy a függvényhívás verem műveletekkel és memóriaugrásokkal jár, adott esetben még - nyilván nem mérhető módon de - gyorsabb is lehet)...

Tény hogy úgy kevesebb kódsorral megoldható és kisebb a hibalehetőség, de azért írtam ezt a megoldást, mert így talán jobban megérti a kérdező a sztrinek "működését".


Örülök hogy segíthettem.

2010. jan. 6. 21:33
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

na igen. lehet, kapsz + veremműveletet, de a C libary assemblyben van megírva, és kicsit jobban optimalizált mint amit a fordító ki tud magából csiholni.

majd egyszer ha sok időm lesz lemérem :)

2010. jan. 9. 22:42
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!