Keresés

Hirdetés

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

  • Jester01

    veterán

    válasz CPT.Pirk #2587 üzenetére

    Ennek már eleve a fordításnál el kellene "buknia":
    c = buffer; Hiányzik egy csillag.
    return *buffer; itt meg van egy fölösleges ;)
    if (c == "\n") ide karakter konstans kell, aposztrófok között nem idézőjelben
    *buffer = *(buffer--); szerkezet nem szabályos
    bár az if belsejét szépen behúztad, attól még oda kellene a kapcsoszárójel (így is fordul, csak mást csinál mivel a return *buffer; már nem lesz a feltétel hatása alatt

    A logikáját amúgy sem értem. Ugye a while feltétel eleve növeli a pointert, tehát c-be a következő karakter kerül már. Ha ez \n (akárhol is van, tehát nem feltétlen a string végén) akkor ezt, és csak ezt, megpróbálja felülírni az ezt megelőző karakterrel és itt abba is hagyja a feldolgozást, visszatérési érték pedig a buffer aktuális értéke lesz (tehát nem a string eleje). Ha pl. a bemenet "abc\ndef" akkor a kimenet "cdef" esetleg "ccdef" lesz.

    Mivel az a feladat, hogy szedje le az új sor jelet a string végéről, ezért egyszerűen meg kell keresni a lezáró nulla byteot és azt eggyel előrébb hozni ha az előző karakter \n volt.

    Jester

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