#include <stdio.h>
#include <string.h>
char* strstr_(const char* s1, const char* s2) {
// find first occurrence of s2 in s1
if (*s2 == '\0')
return ((char*)s1);
for (; (s1 = strchr(s1, *s2)) != NULL; s1++) { // first char
const char *p1, *p2;
for (p1 = s1, p2 = s2; ; ) // rest of the chars
if (*++p2 == '\0')
return (char*)s1;
else if (*++p1 != *p2)
break;
}
return NULL;
}
int main(void)
{
const char str1[] = "c dart java c++ java php c";
const char str2[] = "java";
char* p = strstr_(str1, str2);
printf("%s\n", p);
return 0;
}
/*
run:
java c++ java php c
*/