code:

Can't Copy and Paste this?

Click here for a copy-and-paste friendly version of this code!

 

Terms of Agreement:   

By using this code, you agree to the following terms...   

1) You may use this code in your own programs (and may compile it into a program and distribute it in compiled format for langauges that allow it) freely and with no charge.   

2) You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.   

3) You may link to this code from another website, but ONLY if it is not wrapped in a frame. 

4) You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.  

//     

/* +++Date last modified: 05-Jul-1997 */

#include 

#include 

#include "snip_str.h"

#if defined(__cplusplus) && __cplusplus

    extern "C" {

    #endif

    char *stptok(const char *s, char *tok, size_t toklen, char *brk)

        {

        char *lim, *b;

        if (!*s)

        return NULL;

        lim = tok + toklen - 1;

        while ( *s && tok < lim )

            {

            for ( b = brk; *b; b++ )

                {

                if ( *s == *b )

                    {

                    *tok = 0;

                    for (++s, b = brk; *s && *b; ++b)

                        {

                        if (*s == *b)

                            {

                            ++s;

                            b = brk;

                        }

                    }

                    return (char *)s;

                }

            }

            *tok++ = *s++;

        }

        *tok = 0;

        return (char *)s;

    }

    #if defined(__cplusplus) && __cplusplus

}

#endif

#ifdef TEST

#include 

main(int argc, char *argv[])

    {

    char *ptr, buf[256];

    if (3 > argc)

        {

        puts("Usage: STPTOK \"string\" \"token_string\"");

        return EXIT_FAILURE;

    }

    else ptr = argv[1];

    do

        {

        ptr = stptok(ptr, buf, sizeof(buf), argv[2]);

        printf("stptok(\"%s\", \"%s\")\n buf: \"%s\"\n "

        "returned: \"%s\"\n", argv[1], argv[2], buf, ptr);

    } while (ptr && *ptr);

    return EXIT_SUCCESS;

}

#endif /* TEST */

 

 

Other 156 submission(s) by this author