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

MultiPlatform

  1. /* strstr.c - file for string */
  2. /* Copyright 1992-1993 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,25feb93,jdi  documentation cleanup for 5.1.
  7. 01b,20sep92,smb  documentation additions
  8. 01a,08jul92,smb  written and documented.
  9. */
  10. /*
  11. DESCRIPTION
  12. INCLUDE FILES: string.h
  13. SEE ALSO: American National Standard X3.159-1989
  14. NOMANUAL
  15. */
  16. #include "vxWorks.h"
  17. #include "string.h"
  18. /******************************************************************************
  19. *
  20. * strstr - find the first occurrence of a substring in a string (ANSI)
  21. *
  22. * This routine locates the first occurrence in string <s>
  23. * of the sequence of characters (excluding the terminating null character)
  24. * in the string <find>.
  25. *
  26. * INCLUDE FILES: string.h
  27. *
  28. * RETURNS:
  29. * A pointer to the located substring, or <s> if <find> points to a
  30. * zero-length string, or NULL if the string is not found.
  31. */
  32. char * strstr
  33.     (
  34.     const char * s,        /* string to search */
  35.     const char * find      /* substring to look for */
  36.     )
  37.     {
  38.     char *t1;
  39.     char *t2;
  40.     char c;
  41.     char c2;
  42.     if ((c = *find++) == EOS) /* <find> an empty string */
  43. return (CHAR_FROM_CONST(s));
  44.     FOREVER
  45. {
  46. while (((c2 = *s++) != EOS) && (c2 != c))
  47.     ;
  48. if (c2 == EOS)
  49.     return (NULL);
  50. t1 = CHAR_FROM_CONST(s);
  51. t2 = CHAR_FROM_CONST(find); 
  52. while (((c2 = *t2++) != 0) && (*t1++ == c2))
  53.     ;
  54. if (c2 == EOS)
  55.     return (CHAR_FROM_CONST(s - 1));
  56. }
  57.     }