home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 109.lha / PD_C / lib / strstr.c < prev    next >
C/C++ Source or Header  |  1986-11-20  |  825b  |  30 lines

  1. /*
  2.  * strstr - find first occurrence of wanted in s
  3.  */
  4.  
  5. #define  NULL      0
  6.  
  7. char *                                 /* found string, or NULL if none */
  8. strstr(s, wanted)
  9. CONST char *s;
  10. CONST char *wanted;
  11. {
  12.          register CONST char *scan;
  13.          register SIZET len;
  14.          register char firstc;
  15.          extern int strcmp();
  16.          extern SIZET strlen();
  17.  
  18.          /*
  19.           * The odd placement of the two tests is so "" is findable.
  20.           * Also, we inline the first char for speed.
  21.           * The ++ on scan has been moved down for optimization.
  22.           */
  23.          firstc = *wanted;
  24.          len = strlen(wanted);
  25.          for (scan = s; *scan != firstc || strncmp(scan, wanted, len) != 0; )
  26.                    if (*scan++ == '\0')
  27.                              return(NULL);
  28.          return(scan);
  29. }
  30.