我找到了这个实现char * strchr (const char *string, int c);
:
for (;;)
if (*string == c)
return (char *) string;
else if (*string == '\0')
return NULL;
else
string++;
不过,对我来说,这相当于执行以下操作,这将更容易阅读:
while (*string != c && *string != '\0')
string++;
return (*string == c) ? ((char *) string) : (NULL);
我认为 libc 实现第一个是有原因的。但是任何人都知道它背后的原因是什么?