home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gdb-4.16-base.tgz / gdb-4.16-base.tar / fsf / gdb / libiberty / strstr.c < prev    next >
C/C++ Source or Header  |  1995-05-15  |  959b  |  52 lines

  1. /* Simple implementation of strstr for systems without it.
  2.    This function is in the public domain.  */
  3.  
  4. /*
  5.  
  6. NAME
  7.  
  8.     strstr -- locate first occurance of a substring
  9.  
  10. SYNOPSIS
  11.  
  12.     #include <string.h>
  13.  
  14.     char *strstr (char *s1, char *s2)
  15.  
  16. DESCRIPTION
  17.  
  18.     Locates the first occurance in the string pointed to by S1 of
  19.     the string pointed to by S2.  Returns a pointer to the substring
  20.     found, or a NULL pointer if not found.  If S2 points to a string
  21.     with zero length, the function returns S1.
  22.     
  23. BUGS
  24.  
  25. */
  26.  
  27.  
  28. /* FIXME:  The above description is ANSI compiliant.  This routine has not
  29.    been validated to comply with it.  -fnf */
  30.  
  31. char *
  32. strstr (s1, s2)
  33.   char *s1, *s2;
  34. {
  35.   register char *p = s1;
  36.   extern char *strchr ();
  37.   extern int strncmp ();
  38. #if __GNUC__==2
  39.   extern __SIZE_TYPE__ strlen ();
  40. #endif
  41.   register int len = strlen (s2);
  42.  
  43.   for (; (p = strchr (p, *s2)) != 0; p++)
  44.     {
  45.       if (strncmp (p, s2, len) == 0)
  46.     {
  47.       return (p);
  48.     }
  49.     }
  50.   return (0);
  51. }
  52.