home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume13 / korner / strtok.c < prev   
C/C++ Source or Header  |  1988-01-31  |  728b  |  53 lines

  1. #include <stdio.h>
  2.  
  3. static char *Save=NULL;
  4.  
  5. char *
  6. strtok(str,delim)
  7. char *str, *delim;
  8. {
  9.     char *tokstart, *tokend, *first_ch (), *last_ch();
  10.  
  11.     if (str != NULL)
  12.         Save = str;
  13.  
  14.     if (Save == NULL)
  15.         return (NULL);
  16.  
  17.     tokstart = first_ch (Save, delim);
  18.     tokend = last_ch (tokstart, delim);
  19.     Save = first_ch (tokend, delim);
  20.     *tokend = '\0';
  21.  
  22.     if (*tokstart == '\0')
  23.         return (NULL);
  24.  
  25.     return (tokstart);
  26. }
  27.  
  28. static char *
  29. first_ch (str,delim)
  30. char *str,*delim;
  31. {
  32.     char *index ();
  33.     char *f;
  34.  
  35.     for (f = str; *f != '\0' && index(delim,*f) != NULL; ++f)
  36.         ;
  37.  
  38.     return (f);
  39. }
  40.  
  41. static char *
  42. last_ch (str,delim)
  43. char *str,*delim;
  44. {
  45.     char *index ();
  46.     char *f;
  47.  
  48.     for (f = str; *f != '\0' && index(delim,*f) == NULL; ++f)
  49.         ;
  50.  
  51.     return (f);
  52. }
  53.