Mea culpa

Ezt most találtam egy saját programomban, és nagyon nem tetszik:

q= strchr (p, '\0');

Mi a haragos moha ez? Jó, tegyük fel, hogy működik, de akkor is inkább így kellene:

q= p + strlen (p);

vagy

q= memchr (p, '\0', plim-p);

Hozzászólások

q= strchr (p, '\0');

mit akarsz ezzel ellenorizni/csinalni?

--
"nem tárgyszerűen nézem a dolgot, hanem a vádló szerepéből. Sok bosszúságot okoztak, örülnék ha megbüntetnék őket - tudom gyarló dolog, de hát nem vagyok tökéletes." (BehringerZoltan)

Megkeresi a stringben az első \0-t (ami egyben a string terminátora)... Ami más karakter esetében teljesen rendben is lenne, de pont a nullával nem tetszik nekem; nem értem, hogy miért így csináltam annó.

Tulajdonképpen előfordulhatna, hogy a strchr ilyenkor NULL-t adjon vissza, ha mondjuk így lenne implementálva:


char *strchr (const char *p, int c)
{
    return p? memchr (p, c, strlen(p)): NULL;
}