home *** CD-ROM | disk | FTP | other *** search
/ ftp.uv.es / 2014.11.ftp.uv.es.tar / ftp.uv.es / pub / unix / elm-2.4-pl20.tar.Z / elm-2.4-pl20.tar / lib / strstr.c < prev    next >
C/C++ Source or Header  |  1992-10-03  |  2KB  |  72 lines

  1.  
  2. static char rcsid[] = "@(#)$Id: strstr.c,v 5.1 1992/10/03 22:41:36 syd Exp $";
  3.  
  4. /*******************************************************************************
  5.  *  The Elm Mail System  -  $Revision: 5.1 $   $State: Exp $
  6.  *
  7.  *            Copyright (c) 1988-1992 USENET Community Trust
  8.  *            Copyright (c) 1986,1987 Dave Taylor
  9.  *******************************************************************************
  10.  * Bug reports, patches, comments, suggestions should be sent to:
  11.  *
  12.  *    Syd Weinstein, Elm Coordinator
  13.  *    elm@DSI.COM            dsinc!elm
  14.  *
  15.  *******************************************************************************
  16.  * $Log: strstr.c,v $
  17.  * Revision 5.1  1992/10/03  22:41:36  syd
  18.  * Initial checkin as of 2.4 Release at PL0
  19.  *
  20.  *
  21.  ******************************************************************************/
  22.  
  23. /** look for substring in string
  24. **/
  25.  
  26. #include "headers.h"
  27.  
  28. /*
  29.  * strstr() -- Locates a substring.
  30.  *
  31.  * This is a replacement for the POSIX function which does not
  32.  * appear on all systems.
  33.  *
  34.  * Synopsis:
  35.  *    #include <string.h>
  36.  *    char *strstr(const char *s1, const char *s2);
  37.  *
  38.  * Arguments:
  39.  *    s1    Pointer to the subject string.
  40.  *    s2    Pointer to the substring to locate.
  41.  *
  42.  * Returns:
  43.  *    A pointer to the located string or NULL
  44.  *
  45.  * Description:
  46.  *    The strstr() function locates the first occurence in s1 of
  47.  *    the string s2.  The terminating null characters are not
  48.  *    compared.
  49.  */
  50.  
  51. char *strstr(s1, s2)
  52. char *s1, *s2;
  53. {
  54.     int len;
  55.     char *ptr;
  56.     char *tmpptr;
  57.  
  58.     ptr = NULL;
  59.     len = strlen(s2);
  60.  
  61.     if ( len <= strlen(s1)) {
  62.         tmpptr = s1;
  63.         while ((ptr = index(tmpptr, (int)*s2)) != NULL) {
  64.             if (strncmp(ptr, s2, len) == 0) {
  65.                 break;
  66.             }
  67.             tmpptr = ptr+1;
  68.         }
  69.     }
  70.     return (ptr);
  71. }
  72.