⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strtok.c

📁 一组基础的C库的实现
💻 C
字号:
/* $Id: strtok.c 262 2006-11-16 07:34:57Z solar $ *//* Release $Name$ *//* strtok( char *, const char * )   This file is part of the Public Domain C Library (PDCLib).   Permission is granted to use, modify, and / or redistribute at will.*/#include <string.h>#ifndef REGTESTchar * strtok( char * _PDCLIB_restrict s1, const char * _PDCLIB_restrict s2 ){    static char * tmp = NULL;    const char * p = s2;    if ( s1 != NULL )    {        /* new string */        tmp = s1;    }    else    {        /* old string continued */        if ( tmp == NULL )        {            /* No old string, no new string, nothing to do */            return NULL;        }        s1 = tmp;    }    /* skipping leading s2 characters */    while ( *p && *s1 )    {        if ( *s1 == *p )        {            /* found seperator; skip and start over */            ++s1;            p = s2;            continue;        }        ++p;    }    if ( ! *s1 )    {        /* no more to parse */        return ( tmp = NULL );    }    /* skipping non-s2 characters */    tmp = s1;    while ( *tmp )    {        p = s2;        while ( *p )        {            if ( *tmp == *p++ )            {                /* found seperator; overwrite with '\0', position tmp, return */                *tmp++ = '\0';                return s1;            }        }        ++tmp;    }    /* parsed to end of string */    return ( tmp = NULL );}#endif#ifdef TEST#include <_PDCLIB_test.h>int main(){    char s[] = "_a_bc__d_";    BEGIN_TESTS;    TESTCASE( strtok( s, "_" ) == &s[1] );    TESTCASE( s[1] == 'a' );    TESTCASE( s[2] == '\0' );    TESTCASE( strtok( NULL, "_" ) == &s[3] );    TESTCASE( s[3] == 'b' );    TESTCASE( s[4] == 'c' );    TESTCASE( s[5] == '\0' );    TESTCASE( strtok( NULL, "_" ) == &s[7] );    TESTCASE( s[6] == '_' );    TESTCASE( s[7] == 'd' );    TESTCASE( s[8] == '\0' );    TESTCASE( strtok( NULL, "_" ) == NULL );    return TEST_RESULTS;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -