7 size_t _strxspn(const char *s1
, const char *s2
)
9 unsigned char char_map
[1 << CHAR_BIT
* sizeof(char)];
10 register unsigned char * us2
= (unsigned char *)s2
;
11 register unsigned char * str
= (unsigned char *)s1
;
13 memset(char_map
, 0, sizeof(char_map
));
16 char_map
[*us2
/ CHAR_BIT
] |= (1 << (*us2
% CHAR_BIT
));
19 if(_x(char_map
[*str
/ CHAR_BIT
] & (1 << (*str
% CHAR_BIT
)))) break;
21 return str
- (unsigned char*)s1
;