strstr中一段精巧的代码

下面代码是glibc库中strstr函数源码中判断子串是否为父串的前缀的一段代码,十分简练,考虑周到。

char *

STRSTR (const char *haystack_start, const char *needle_start)
{
  const char *haystack = haystack_start;
  const char *needle = needle_start;

  bool ok = true;


 
  while (*haystack && *needle)
    ok &= *haystack++ == *needle++;
  if (*needle)
    return NULL;
  if (ok)

    return (char *) haystack_start;


}

你可能感兴趣的:(null)