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