Hirdetés

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

  • CPT.Pirk
    Jómunkásember

    ha space meg tab is uresnek szamit, akkor kicsit valtozik a logika, vegig kell iteralni a stringen, es ha olyan karaktert talalsz ami a fentiek egyike sem, akkor nem ures
    pl:

    bool isempty(char *s)
    {
    char *p;
    for (p=s; *p; ++p)
    if (*p != ' ' && *p != '\t')
    return false;
    return true;
    }

    ki nem probaltam, de igy ranezesre jonak kell lennie :)

    a *s ugye a karakter amire az 's' valtozo mutat (jelen esetben, mivel a pointer es a tomb C-ben ugyanaz, a string elso karaktere)
    ha ez a string veget jelzo 0, akkor nyilvan ures, tehat a !*s igaz lesz (ez ugyanaz mint a *s == 0)

    de a space/tab miatt ez ugyebar mar nem jatszik :)

    Bedobva a fordítóba, már rögtön a bool után hiányol valamit.

    Ha jól értem:
    bool isempty(char *s) - itt az *s lesz az a string, amit vizsgálunk.

    char *p; -csinál egy pointert. De ez most mutat valamire? Vagy csak üres tömb?

    for (p=s; *p; ++p) - itt a kezdőérték mi? A p megkapja az s elemeit? A feltétel meg az hogy amíg van eleme, és addig a ++p lépteti az elemeket?

    if (*p != ' ' && *p != '\t') - itt a space és a tab vizsgálat van, ez tiszta.

    Hogyan tudnám összehozni a dolgot mondjuk egy scanf-el? Az argv dolog szerintem itt nm jó, mert annak alapból az első eleme a file neve. A t. tanárúr nem szereti a scanfet, de kipróbálni jó lenne.

    Régen volt a C, lua-ban csináltam pár dolgot az elmúlt 2 évben, az sokkal egyszerűbbnek tűnik egyenlőre.

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