7 #define BIT_SIZE (CHAR_BIT * sizeof(unsigned long) / sizeof(char))
9 char* strpbrk(const char *s1
, const char *s2
)
17 return strchr(s1
, *s2
);
19 else if (*(s2
+2) == 0)
23 s4
= strchr(s1
, *(s2
+1));
32 return s3
< s4
? s3
: s4
;
36 unsigned long char_map
[(1 << CHAR_BIT
) / BIT_SIZE
] = {0, };
37 const unsigned char* str
= (const unsigned char*)s1
;
40 char_map
[*(const unsigned char*)s2
/ BIT_SIZE
] |= (1 << (*(const unsigned char*)s2
% BIT_SIZE
));
45 if (char_map
[*str
/ BIT_SIZE
] & (1 << (*str
% BIT_SIZE
)))
47 return (char*)((size_t)str
);