strnstr.c 365 B

123456789101112131415161718192021222324
  1. #include <string.h>
  2. char* strnstr(const char* str, const char* sub, size_t len)
  3. {
  4. size_t sublen = strlen(sub);
  5. const char* pos = str;
  6. const char* end = str + len - sublen;
  7. for(pos = str; pos <= end; pos++) {
  8. const char* p = pos;
  9. const char* q = sub;
  10. while(*q && *q == *p) {
  11. p++;
  12. q++;
  13. } if(!*q) {
  14. return (char*) pos;
  15. }
  16. }
  17. return NULL;
  18. }