74 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
| FUNCTION
 | |
| 	<<strstr>>---find string segment
 | |
| 
 | |
| INDEX
 | |
| 	strstr
 | |
| 
 | |
| ANSI_SYNOPSIS
 | |
| 	#include <string.h>
 | |
| 	char *strstr(const char *<[s1]>, const char *<[s2]>);
 | |
| 
 | |
| TRAD_SYNOPSIS
 | |
| 	#include <string.h>
 | |
| 	char *strstr(<[s1]>, <[s2]>)
 | |
| 	char *<[s1]>;
 | |
| 	char *<[s2]>;
 | |
| 
 | |
| DESCRIPTION
 | |
| 	Locates the first occurence in the string pointed to by <[s1]> of
 | |
| 	the sequence of characters in the string pointed to by <[s2]>
 | |
| 	(excluding the terminating null  character).
 | |
| 
 | |
| RETURNS
 | |
| 	Returns a pointer to the located string segment, or a null
 | |
| 	pointer if the string <[s2]> is not found. If <[s2]> points to
 | |
| 	a string with zero length, the <[s1]> is returned.
 | |
| 
 | |
| PORTABILITY
 | |
| <<strstr>> is ANSI C.
 | |
| 
 | |
| <<strstr>> requires no supporting OS subroutines.
 | |
| 
 | |
| QUICKREF
 | |
| 	strstr ansi pure
 | |
| */
 | |
| 
 | |
| #include <string.h>
 | |
| 
 | |
| char *
 | |
| _DEFUN (strstr, (searchee, lookfor),
 | |
| 	_CONST char *searchee _AND
 | |
| 	_CONST char *lookfor)
 | |
| {
 | |
|   if (*searchee == 0)
 | |
|     {
 | |
|       if (*lookfor)
 | |
| 	return (char *) NULL;
 | |
|       return (char *) searchee;
 | |
|     }
 | |
| 
 | |
|   while (*searchee)
 | |
|     {
 | |
|       size_t i;
 | |
|       i = 0;
 | |
| 
 | |
|       while (1)
 | |
| 	{
 | |
| 	  if (lookfor[i] == 0)
 | |
| 	    {
 | |
| 	      return (char *) searchee;
 | |
| 	    }
 | |
| 
 | |
| 	  if (lookfor[i] != searchee[i])
 | |
| 	    {
 | |
| 	      break;
 | |
| 	    }
 | |
| 	  i++;
 | |
| 	}
 | |
|       searchee++;
 | |
|     }
 | |
| 
 | |
|   return (char *) NULL;
 | |
| }
 |