Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    Adott egy állomány, amely magyar nyelvű mondatokat tartalmaz, minden sorban pontosan egyet. Írj programot, amely egy másik állományba írja az első állomány azon mondatait, amelyeknek van olyan legalább öt karakter hosszúságú szava, amely palindróma. (A wchar.h használata javasolt.)

    Nekem már van egy olyan programom,hogy EOF-ig szavakat olvas be és megnézi,hogy palindroma e és aztán ezeket kiírja egy fájlba...

    Ezt a feladatot,hogyan kellene a legegyszerűbben megoldani? Én gondoltam arra,hogy egy hosszabb sztringbe beolvasom a mondatot és onnan valahogy(nemtudom,hogy kell) egy másik sztringbe átmásolom a szavakat és ha palindroma akkor kiírom a mondatot.
    Mert akkor itt egyszerű lenne az a vizsgálat is,hogy figyelembe vegye azt,hogy legalább 5 betűs legyen a palindroma....

    Mi van a wchar.h-ban amiért ajánlják?Utánanéztem,de nem esett le...

    Másik: több szó közül,hogyan állapítom meg,hogy melyik fordul elő a leggyakrabban?

    Azért kínálgatják a wchar.h-t, hogy az ékezetes karaktereket helyesen tudd kezelni. Éppen csak azt felejtették el megmondani, hogy milyen kódolásban van a fájl. :U

    Igen, ha mondatonként olvasol be, az jó megoldás lehet. Figyelned kell arra, hogy esetleg nem fér bele a pufferbe, ezért dinamikusan kell méretezni. Vagy, ha nagyon csúnyán akarod, akkor egyszerre be is olvashatod az egész fájlt :Y Mindenesetre azt kellene tudni, mi határoz meg egy mondatot - erre jó lenne ha a specifikáció kitért volna. Márcsak azért is, mert bizonyos esetkben igen nehéz eldönteni. Például az Apám neve id. Kiss János. az hány mondat is? :F Ennek hiányában egyszerű szabályként például azt lehet használni, hogy a mondat vége ott van ahol egy vagy több ., ! vagy ? áll ami után a következő betű nagy. De ezt mindenképp rögzíteni kell a dokumentációban. Összességében ez egy igen rosszul specifikált probléma, szerintem ne vállald el :DD

    A másik kérdésre: valamilyen alkalmas adatszerkezetben nyilván kell tartani a szavakat. Ahogy olvasod a bemenetet, a megfelelő szó előfordulásainak számát növeled. Tipikusan erre a hash tábla a célszerű, de mivel C-ben ilyen nincs, ezért például egy láncolt lista vagy egy bináris fa is megteszi. MOD: persze ilyenek sincsenek, de könnyebb csinálni ;)

Új hozzászólás Aktív témák