Hirdetés

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

  • doc
    nagyúr

    Na ide is leírom, hátha többen olvassák: (boccs a noob kérdésekért...)
    strcpy függvény

    strcpy (s, t)
    char *s, *t;
    {
    while (*s++ = *t++)
    ;
    }

    Mi az s és a t?
    Mi a *s, *t?
    Mi a *s++ és a *t++, és mit csinál?
    Hogyan "tudja" a while, hogy mikor van vége a szövegnek?
    (az nem kielégítő válasz, hogy megkeresi a 0-át a string végén!)

    akkor a másik totyikba már nem válaszolok :)
    szóval:

    s az a cím (ha úgy tetszik, string) ahova a t címen tárold string bemásolódik
    char *s annyit jelent, hogy az s változó egy karakterre mutató mutató lesz
    *s++ ez annyit művel, hogy megadja azt az értéket, amire az s változó mutat, majd az s értékét növeli, így az a következő karakterre fog mutatni
    a while onnan tudja hogy vége a szövegnek, hogy a t változó, ami minden ciklusban a következő karakterre mutat, 0-ra fog mutatni, ami meg ugye string vége
    így az s által mutatott helyre 0 kerül, ezt a visszatérési értéket a while is látja, és mivel 0, amit ő "hamis"-ként értelmez, végez

    remélem vmennyire érthető volt...

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