strtok.c
上传用户:baixin
上传日期:2008-03-13
资源大小:4795k
文件大小:3k
开发平台:

MultiPlatform

  1. /* strtok.c - file for string */
  2. /* Copyright 1992-1995 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,23oct95,jdi  doc: added comment that input string will be
  7.     changed (SPR 4874).
  8. 01c,25feb93,jdi  documentation cleanup for 5.1.
  9. 01b,20sep92,smb  documentation additions
  10. 01a,08jul92,smb  written and documented.
  11. */
  12. /*
  13. DESCRIPTION
  14. INCLUDE FILES: string.h
  15. SEE ALSO: American National Standard X3.159-1989
  16. NOMANUAL
  17. */
  18. #include "vxWorks.h"
  19. #include "string.h"
  20. /******************************************************************************
  21. *
  22. * strtok - break down a string into tokens (ANSI)
  23. *
  24. * A sequence of calls to this routine breaks the string <string> into a
  25. * sequence of tokens, each of which is delimited by a character from the
  26. * string <separator>.  The first call in the sequence has <string> as its
  27. * first argument, and is followed by calls with a null pointer as their
  28. * first argument.  The separator string may be different from call to call.
  29. * The first call in the sequence searches <string> for the first character
  30. * that is not contained in the current separator string.  If the character
  31. * is not found, there are no tokens in <string> and strtok() returns a
  32. * null pointer.  If the character is found, it is the start of the first
  33. * token.
  34. * strtok() then searches from there for a character that is contained in the
  35. * current separator string.  If the character is not found, the current
  36. * token expands to the end of the string pointed to by <string>, and
  37. * subsequent searches for a token will return a null pointer.  If the
  38. * character is found, it is overwritten by a null character, which
  39. * terminates the current token.  strtok() saves a pointer to the following
  40. * character, from which the next search for a token will start.
  41. * (Note that because the separator character is overwritten by a null
  42. * character, the input string is modified as a result of this call.)
  43. * Each subsequent call, with a null pointer as the value of the first
  44. * argument, starts searching from the saved pointer and behaves as
  45. * described above.
  46. * The implementation behaves as if strtok() is called by no library functions.
  47. *
  48. * REENTRANCY
  49. * This routine is not reentrant; the reentrant form is strtok_r().
  50. *
  51. * INCLUDE FILES: string.h
  52. * RETURNS
  53. * A pointer to the first character of a token, or a NULL pointer if there is
  54. * no token.
  55. *
  56. * SEE ALSO: strtok_r()
  57. */ 
  58. char * strtok
  59.     (
  60.     char *       string, /* string */
  61.     const char * separator /* separator indicator */
  62.     )
  63.     {
  64.     static char *last = NULL;
  65.     return (strtok_r (string, separator, &last));
  66.     }