cistrstr.c 357 B

1234567891011121314151617181920212223
  1. #include <u.h>
  2. #include <libc.h>
  3. char*
  4. cistrstr(char *s, char *sub)
  5. {
  6. int c, csub, n;
  7. csub = *sub;
  8. if(csub == '\0')
  9. return s;
  10. if(csub >= 'A' && csub <= 'Z')
  11. csub -= 'A' - 'a';
  12. sub++;
  13. n = strlen(sub);
  14. for(; c = *s; s++){
  15. if(c >= 'A' && c <= 'Z')
  16. c -= 'A' - 'a';
  17. if(c == csub && cistrncmp(s+1, sub, n) == 0)
  18. return s;
  19. }
  20. return nil;
  21. }