scc

simple C compiler
git clone git://git.2f30.org/scc
Log | Files | Refs | README | LICENSE

commit 960d97aae29fcd5e7d09bcc24b28cdef9472f712
parent 494bd039510a349f198a1cd310b8e36ed8ddce09
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Thu, 23 Feb 2017 16:19:41 +0100

[libc] Add strspn()

Diffstat:
libc/src/Makefile | 2+-
libc/src/strspn.c | 19+++++++++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/libc/src/Makefile b/libc/src/Makefile @@ -3,7 +3,7 @@ LIBCOBJ = assert.o strcpy.o strcmp.o strlen.o strchr.o \ strrchr.o strcat.o strncmp.o strncpy.o strncat.o strcoll.o \ - strxfrm.o strtok.o strstr.o \ + strxfrm.o strtok.o strstr.o strspn.o \ memset.o memcpy.o memmove.o memcmp.o memchr.o \ isalnum.o isalpha.o isascii.o isblank.o iscntrl.o isdigit.o \ isgraph.o islower.o isprint.o ispunct.o isspace.o isupper.o \ diff --git a/libc/src/strspn.c b/libc/src/strspn.c @@ -0,0 +1,19 @@ +/* See LICENSE file for copyright and license details. */ + +#include <string.h> + +size_t +strspn(const char *s1, const char *s2) +{ + size_t n; + int c; + const char *p; + + for (n = 0; c = *s1++; ++n) { + for (p = s2; *p && *p != c; ++p) + /* nothing */; + if (*p == '\0') + break; + } + return n; +}