home *** CD-ROM | disk | FTP | other *** search
- /* strtok.c: 3 very useful string-handling functions.
- * You don't need this file if you are using Lattice C.
- * Manx C does not provide them.
- *
- * Written by Daniel Barrett. 100% PUBLIC DOMAIN. */
-
-
- #include "decl.h"
- #define STRING_END '\0'
-
- /* Return the next string "token" in "buf". Tokens are substrings
- * separated by any characters in "separators". */
-
- char *strtok(buf, separators)
- char *buf, *separators;
- {
- register char *token, *end; /* Start and end of token. */
- extern char *strpbrk();
- static char *fromLastTime;
-
- if (token = buf ? buf : fromLastTime) {
- token += strspn(token, separators); /* Find token! */
- if (*token == STRING_END)
- return(NULL);
- fromLastTime = ((end = strpbrk(token,separators))
- ? &end[1]
- : NULL);
- *end = STRING_END; /* Cut it short! */
- }
- return(token);
- }
-
-
- /* Return a pointer to the first occurance in "str" of any character
- * in "charset". */
-
- char *strpbrk(str, charset)
- register char *str, *charset;
- {
- extern char *index();
-
- while (*str && (!index(charset, *str)))
- str++;
- return(*str ? str : NULL);
- }
-
-
- /* Return the number of characters from "charset" that are at the BEGINNING
- * of string "str".
- */
-
- int strspn(str, charset)
- register char *str, *charset;
- {
- register char *s;
- s = str;
- while (index(charset, *s))
- s++;
- return(s - str);
- }
-
-