5 #define BIT_SIZE (CHAR_BIT * sizeof(unsigned long) / sizeof(char))
7 char* __cdecl
strpbrk(const char *s1
, const char *s2
)
15 return strchr(s1
, *s2
);
17 else if (*(s2
+2) == 0)
21 s4
= strchr(s1
, *(s2
+1));
30 return s3
< s4
? s3
: s4
;
34 unsigned long char_map
[(1 << CHAR_BIT
) / BIT_SIZE
] = {0, };
35 const unsigned char* str
= (const unsigned char*)s1
;
38 char_map
[*(const unsigned char*)s2
/ BIT_SIZE
] |= (1 << (*(const unsigned char*)s2
% BIT_SIZE
));
43 if (char_map
[*str
/ BIT_SIZE
] & (1 << (*str
% BIT_SIZE
)))
45 return (char*)((size_t)str
);