X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fstring%2Fstrcspn.c;h=5239d26f635cd4fdfd20a535b54bcd51d37541a3;hb=cd6cfe0f578c4f744ddc9a342243aff6b42f8027;hp=7c4d9b8c58054576394f2111ed88d259de8943aa;hpb=c8f799d852e3698468a78954d82588e841cc0b70;p=pdclib.old diff --git a/functions/string/strcspn.c b/functions/string/strcspn.c index 7c4d9b8..5239d26 100644 --- a/functions/string/strcspn.c +++ b/functions/string/strcspn.c @@ -1,22 +1,25 @@ -/* ---------------------------------------------------------------------------- - * $Id$ - * ---------------------------------------------------------------------------- - * Public Domain C Library - http://pdclib.sourceforge.net - * This code is Public Domain. Use, modify, and redistribute at will. - * --------------------------------------------------------------------------*/ +/* $Id$ */ -#include <__size_t.h> +/* strcspn( const char *, const char * ) -size_t strcspn( const char * src_1, const char * src_2 ) + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. +*/ + +#include + +#ifndef REGTEST + +size_t strcspn( const char * s1, const char * s2 ) { size_t len = 0; - const char * src_p; - while ( src_1[len] != '\0' ) + const char * p; + while ( s1[len] ) { - src_p = src_2; - while ( *src_p != '\0' ) + p = s2; + while ( *p ) { - if ( src_1[len] == *src_p++ ) + if ( s1[len] == *p++ ) { return len; } @@ -25,3 +28,23 @@ size_t strcspn( const char * src_1, const char * src_2 ) } return len; } + +#endif + +#ifdef TEST +#include <_PDCLIB_test.h> + +int main( void ) +{ + TESTCASE( strcspn( abcde, "x" ) == 5 ); + TESTCASE( strcspn( abcde, "xyz" ) == 5 ); + TESTCASE( strcspn( abcde, "zyx" ) == 5 ); + TESTCASE( strcspn( abcdx, "x" ) == 4 ); + TESTCASE( strcspn( abcdx, "xyz" ) == 4 ); + TESTCASE( strcspn( abcdx, "zyx" ) == 4 ); + TESTCASE( strcspn( abcde, "a" ) == 0 ); + TESTCASE( strcspn( abcde, "abc" ) == 0 ); + TESTCASE( strcspn( abcde, "cba" ) == 0 ); + return TEST_RESULTS; +} +#endif