source:
asp3_tinet_ecnl_arm/trunk/musl-1.1.18/src/string/strspn.c
Last change on this file was 352, checked in by , 6 years ago | |
---|---|
|
|
File size: 452 bytes |
Rev | Line | |
---|---|---|
[352] | 1 | #include <string.h> |
2 | ||
3 | #define BITOP(a,b,op) \ | |
4 | ((a)[(size_t)(b)/(8*sizeof *(a))] op (size_t)1<<((size_t)(b)%(8*sizeof *(a)))) | |
5 | ||
6 | size_t strspn(const char *s, const char *c) | |
7 | { | |
8 | const char *a = s; | |
9 | size_t byteset[32/sizeof(size_t)] = { 0 }; | |
10 | ||
11 | if (!c[0]) return 0; | |
12 | if (!c[1]) { | |
13 | for (; *s == *c; s++); | |
14 | return s-a; | |
15 | } | |
16 | ||
17 | for (; *c && BITOP(byteset, *(unsigned char *)c, |=); c++); | |
18 | for (; *s && BITOP(byteset, *(unsigned char *)s, &); s++); | |
19 | return s-a; | |
20 | } |
Note:
See TracBrowser
for help on using the repository browser.