#include <stdio.h>

const char *mystrstr(const char *haystack, const char *needle)
{
   if ( !*needle )
   {
      return haystack;
   }
   for ( ; *haystack; ++haystack )
   {
      if ( *haystack == *needle )
      {
         /*
          * Matched starting char -- loop through remaining chars.
          */
         const char *h, *n;
         for ( h = haystack, n = needle; *h && *n; ++h, ++n )
         {
            if ( *h != *n )
            {
               break;
            }
         }
         if ( !*n ) /* matched all of 'needle' to null termination */
         {
            return haystack; /* return the start of the match */
         }
      }
   }
   return 0;
}

int main(void)
{
   const char text[] = "The quick brown fox jumps over the lazy dog.";
   const char word[] = "fox";
   const char *found = mystrstr(text, word);
   if ( found )
   {
      puts(found);
   }
   return 0;
}

/* my output
fox jumps over the lazy dog.
*/
The article starter has earned a lot of community kudos, and such articles offer a bounty for quality replies.