C-ben hogyan lehet megszámolni, hogy egy sorban hány karakter van?
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 :)
:) 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
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.
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 :)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!