Hirdetés

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

  • SLD
    tag

    Sziasztok!

    Van nekem egy olyan feladatom,hogy a bemeneti szöveget úgy kell átmásolni a kimenetre,hogy a közben előforduló tabulátorkaraktereket \t,a visszaléptetés \b és a fordított törtvonal(backslash) karaktereket \\ karakterekkel helyettesíti.

    Na én elkezdtem ezt a progit,de \\ helyet csak \ rak,ez valszeg a putchar miatt van,valszeg nem ezt kell használni. Megpróbáltam printf-vel is,de ott se jutottam előrébb. Lehet az egész rossz,ahogy elkezdtem,ezért ha valaki tud adjon tanácsot,megkösszönném.

    a kód:

    #include<stdio.h>

    void main(void) {
    int c;
    c = getchar();
    while(c!=EOF)
    {
    if (c=='\t') putchar('\\');
    if (c=='\b') putchar('\\');
    if (c=='/') putchar('\\');
    else putchar(c);
    c=getchar();
    }
    }

    Esetleg egy darab if-ben nem lehetne megoldani a dolgot?

    Ez nem gond, a \ jellel aktiválod, az őt követő karakter "különleges értelmezését", ami legtöbbször egy formázó karakter. Szóval az első \-el aktiváltad ezt, így a második \ megjelent (itt saját maga esetén persze nem aktiválod vele, hanem tulajdonképpen deaktiválod, de ez már csak részletkérdés), ha ebből Neked két darabot kell kiíratnod, akkor \\\\ -t (4x) kell írnod.

    Szerk: No persze, ha a putchar, csak egy char-t tud kezelni akkor az lehet gond lesz, mert két \ már két karakter, várunk egy C -s kollegát :)

    A kódhoz, C++-os lévén, inkább nem szólok hozzá, de ha már kiírt egy \-t akkor nagy baj nem lehet.

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