diff options
Diffstat (limited to 'rushs/tinyprintf/my_strstr/my_strstr.c')
| -rw-r--r-- | rushs/tinyprintf/my_strstr/my_strstr.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/rushs/tinyprintf/my_strstr/my_strstr.c b/rushs/tinyprintf/my_strstr/my_strstr.c new file mode 100644 index 0000000..36ac439 --- /dev/null +++ b/rushs/tinyprintf/my_strstr/my_strstr.c @@ -0,0 +1,34 @@ +#include "my_strstr.h" + +#include <stddef.h> + +int my_strstr(const char *haystack, const char *needle) +{ + if (needle == NULL || *needle == '\0') + { + return 0; + } + + for (int i = 0; haystack[i]; i++) + { + if (haystack[i] == needle[0]) + { + int j; + for (j = 0; + haystack[i + j] && needle[j] && needle[j] == haystack[i + j]; + j++) + { + continue; + } + if (needle[j] == '\0') + { + return i; + } + if (haystack[i + j] == '\0') + { + return -1; + } + } + } + return -1; +} |
