#include <stdio.h>
char* my_strstr(char *a, char *b);
int main(void)
{
char *haystack = "Stacy Lives Next Door Fool";
char *needle = "Stb";
char *ptr = NULL;
ptr = my_strstr(haystack, needle);
return (0);
}
char* my_strstr(char *haystack, char *needle)
{
int i;
char *a = "does not exist";
if (!needle || !*needle)
return (haystack); // if s2 is empty
while (*haystack != '\0')
{
i = 0;
while (*haystack != *needle && *haystack != '\0')
haystack++;
while (haystack[i] == needle[i] && haystack[i] != '\0')
i++;
if (needle[i] == '\0')
{
return (haystack);
}
haystack++;
}
return a;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmNoYXIqIG15X3N0cnN0cihjaGFyICphLCBjaGFyICpiKTsKaW50ICAgICBtYWluKHZvaWQpCnsKICAgIGNoYXIgKmhheXN0YWNrID0gIlN0YWN5IExpdmVzIE5leHQgRG9vciBGb29sIjsKICAgIGNoYXIgKm5lZWRsZSA9ICJTdGIiOwogICAgY2hhciAqcHRyID0gTlVMTDsKICAgIHB0ciA9IG15X3N0cnN0cihoYXlzdGFjaywgbmVlZGxlKTsKICAgIHByaW50ZigiJXNcbiIsIHB0cik7CiAgICByZXR1cm4gKDApOyAKIH0KIAogY2hhciogbXlfc3Ryc3RyKGNoYXIgKmhheXN0YWNrLCBjaGFyICpuZWVkbGUpCnsKICAgaW50IGk7CgljaGFyICphID0gImRvZXMgbm90IGV4aXN0IjsKICAgaWYgKCFuZWVkbGUgfHwgISpuZWVkbGUpCiAgICAgICByZXR1cm4gKGhheXN0YWNrKTsgLy8gaWYgczIgaXMgZW1wdHkKICAgd2hpbGUgKCpoYXlzdGFjayAhPSAnXDAnKQogICB7CiAgICBpID0gMDsKICAgIHdoaWxlICgqaGF5c3RhY2sgIT0gKm5lZWRsZSAmJiAqaGF5c3RhY2sgIT0gJ1wwJykKICAgICAgICBoYXlzdGFjaysrOwogICAgd2hpbGUgKGhheXN0YWNrW2ldID09IG5lZWRsZVtpXSAmJiBoYXlzdGFja1tpXSAhPSAnXDAnKQogICAgICAgIGkrKzsKICAgIGlmIChuZWVkbGVbaV0gPT0gJ1wwJykKICAgIHsKICAgIAlwcmludGYoIlxuIEluIHRoaXMgbG9vcFxuIik7CiAgICAJcmV0dXJuIChoYXlzdGFjayk7CiAgICB9CiAgICAgICAgCiAgICBoYXlzdGFjaysrOwogICB9CiAgICByZXR1cm4gYTsKfQ==