strcspn.c 251 B

123456789101112131415161718192021
  1. #include <u.h>
  2. #include <libc.h>
  3. #define N 256
  4. long
  5. strcspn(char *s, char *b)
  6. {
  7. char map[N], *os;
  8. memset(map, 0, N);
  9. for(;;) {
  10. map[*(uchar*)b] = 1;
  11. if(*b++ == 0)
  12. break;
  13. }
  14. os = s;
  15. while(map[*(uchar*)s++] == 0)
  16. ;
  17. return s - os - 1;
  18. }