60 lines
		
	
	
		
			947 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			947 B
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
| FUNCTION
 | |
| 	<<strspn>>---find initial match
 | |
| 
 | |
| INDEX
 | |
| 	strspn
 | |
| 
 | |
| ANSI_SYNOPSIS
 | |
| 	#include <string.h>
 | |
| 	size_t strspn(const char *<[s1]>, const char *<[s2]>);
 | |
| 
 | |
| TRAD_SYNOPSIS
 | |
| 	#include <string.h>
 | |
| 	size_t strspn(<[s1]>, <[s2]>)
 | |
| 	char *<[s1]>;
 | |
| 	char *<[s2]>;
 | |
| 
 | |
| DESCRIPTION
 | |
| 	This function computes the length of the initial segment of
 | |
| 	the string pointed to by <[s1]> which consists entirely of
 | |
| 	characters from the string pointed to by <[s2]> (excluding the
 | |
| 	terminating null character).
 | |
| 
 | |
| RETURNS
 | |
| 	<<strspn>> returns the length of the segment found.
 | |
| 
 | |
| PORTABILITY
 | |
| <<strspn>> is ANSI C.
 | |
| 
 | |
| <<strspn>> requires no supporting OS subroutines.
 | |
| 
 | |
| QUICKREF
 | |
| 	strspn ansi pure
 | |
| */
 | |
| 
 | |
| #include <string.h>
 | |
| 
 | |
| size_t
 | |
| _DEFUN (strspn, (s1, s2),
 | |
| 	_CONST char *s1 _AND
 | |
| 	_CONST char *s2)
 | |
| {
 | |
|   _CONST char *s = s1;
 | |
|   _CONST char *c;
 | |
| 
 | |
|   while (*s1)
 | |
|     {
 | |
|       for (c = s2; *c; c++)
 | |
| 	{
 | |
| 	  if (*s1 == *c)
 | |
| 	    break;
 | |
| 	}
 | |
|       if (*c == '\0')
 | |
| 	break;
 | |
|       s1++;
 | |
|     }
 | |
| 
 | |
|   return s1 - s;
 | |
| }
 |