diff options
Diffstat (limited to 'lib/libc/string/strstr.c')
| -rw-r--r-- | lib/libc/string/strstr.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/libc/string/strstr.c b/lib/libc/string/strstr.c new file mode 100644 index 00000000..c3e2d5dd --- /dev/null +++ b/lib/libc/string/strstr.c @@ -0,0 +1,27 @@ +#include <stddef.h> + +char *strstr(const char *s1, const char *s2) +{ + const char *p = s1; + const char *q = s2; + + if (*q == '\0') + return (char *)p; + + while (*p != '\0') { + const char *pp = p; + const char *qq = q; + + while (*pp == *qq && *pp != '\0') { + pp++; + qq++; + } + + if (*qq == '\0') + return (char *)p; + + p++; + } + + return NULL; +} |
