libc/baselibc/src/strspn.c (18 lines of code) (raw):

/* FUNCTION <<strspn>>---find initial match INDEX strspn ANSI_SYNOPSIS #include <string.h> size_t strspn(const char *<[s1]>, const char *<[s2]>); TRAD_SYNOPSIS #include <string.h> size_t strspn(<[s1]>, <[s2]>) char *<[s1]>; char *<[s2]>; DESCRIPTION This function computes the length of the initial segment of the string pointed to by <[s1]> which consists entirely of characters from the string pointed to by <[s2]> (excluding the terminating null character). RETURNS <<strspn>> returns the length of the segment found. PORTABILITY <<strspn>> is ANSI C. <<strspn>> requires no supporting OS subroutines. QUICKREF strspn ansi pure */ #include <string.h> size_t strspn(const char *s1, const char *s2) { const char *s = s1; const char *c; while (*s1) { for (c = s2; *c; c++) { if (*s1 == *c) break; } if (*c == '\0') break; s1++; } return s1 - s; }