1#include <string.h>23#undef strcspn45size_t6strcspn(const char *s1, const char *s2)7{8 const unsigned char *s = (const unsigned char *) s1;9 const unsigned char *reject = (const unsigned char *) s2;10 size_t n;11 unsigned ch;12 char map[__NUMCHARS] = {0};1314 while (ch = *reject++)15 map[ch] = 1;1617 for (n = 0; (ch = *s++) && !map[ch]; ++n)18 ;1920 return n;21}