Hirdetés

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

  • zka67
    őstag

    Hali

    Ezt, hogy a legegyszerűbb megoldani?
    Van egy karakterlánc több karakterből, amit a user ad meg. Ebben csakis betűk szerepelhetnek. Ha más karakter is van, akkor hibaüzenet.
    A betűknek számértéket kell adni egy meghatározott táblázat szerint, és ezeket a számokat összeadni. A space-t ne vegye figyelembe.

    Az elgondolásom.
    fgets-szel beolvastatom a szöveget, majd karakterenként kiolvasom. Aztán ezt a karaktert összehasonlítom a táblázat karaktereivel és a hozzárendelt számmal növelem egy változó értékét, amíg el nem fogynak a karakterek.

    Nagyon régen csináltam ilyet emlékszem rá, hogy a szövegből szám lett. De már nem emlékszem arra, hogy hogyan.

    Szia, van egy kis ellentmondás a feladatodban:

    Ebben csakis betűk szerepelhetnek. Ha más karakter is van, akkor hibaüzenet.
    A space-t ne vegye figyelembe.

    Ha feltételezzük, hogy betűk és szóközök lehetnem az inputban, akkor az isalpha és az isspace lesznek a barátaid.

    Utána már csak egy táblázatra lesz szükséged, amit csinálhatsz akár úgy is, hogy 256 elemű, vagy úgy is, hogy 64 elemű. Az első változat előnye, hogy ott meg tudod adni a space karakternek a 0 értéket, nem kell kétszer vizsgálnod a karaktert. A második változatnál pedig kivonsz 0x40-et a karakter kódjából és azt használod a tömb indexekét, ekkor az 'A'-1 karakter értéke lesz a tömb első eleme.

    Ha a kisbetű és a nagybetű nincs megkülönböztetve, akkor elég egy 26 elemű tömb is a betűk értékeinek, ebben az esetben még a toupper-re is szükséged lesz, és 'A'-t vonsz ki a karaktered értékéből az indexhez.

    Ha nem 256 elemű a tömböd, akkor kétszer is meg kell vizsgálnod a karaktert, hogy valóban betű-e.

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