1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include <string.h> #define N 256 size_t strspn(const char *s, const char *b) { char map[N], *os; memset(map, 0, N); while(*b) map[*(unsigned char *)b++] = 1; os = s; while(map[*(unsigned char *)s++]) ; return s - os - 1; }