strspn, wcsspn, _mbsspn, _mbsspn_l
Returns the index of the first character in a string that does not belong to a set of characters.
size_t strspn( const char *str, const char *strCharSet ); size_t wcsspn( const wchar_t *str, const wchar_t *strCharSet ); size_t _mbsspn( const unsigned char *str, const unsigned char *strCharSet ); size_t _mbsspn_l( const unsigned char *str, const unsigned char *strCharSet, _locale_t locale );
Parameters
- str
-
Null-terminated string to search.
- strCharSet
-
Null-terminated character set.
- locale
-
Locale to use.
The strspn function returns the index of the first character in str that does not belong to the set of characters in strCharSet. The search does not include terminating null characters.
wcsspn and _mbsspn are wide-character and multibyte-character versions of strspn. The arguments of wcsspn are wide-character strings; those of _mbsspn are multibyte-character strings. _mbsspn validates its parameters. If str or strCharSet is NULL, the invalid parameter handler is invoked, as described in Parameter Validation . If execution is allowed to continue, _mbspn sets errno to EINVAL and returns 0. strspn and wcsspn do not validate their parameters. These three functions behave identically otherwise.
The output value is affected by the setting of the LC_CTYPE category setting of the locale; see setlocale for more information. The versions of these functions without the _l suffix use the current locale for this locale-dependent behavior; the versions with the _l suffix are identical except that they use the locale parameter passed in instead.
| TCHAR.H routine | _UNICODE & _MBCS not defined | _MBCS defined | _UNICODE defined |
|---|---|---|---|
| _tcsspn | strspn | _mbsspn | wcsspn |
| n/a | n/a | _mbsspn_l | n/a |
| Routine | Required header | Compatibility |
|---|---|---|
| strspn | <string.h> | ANSI, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 |
| wcsspn | <string.h> or <wchar.h> | ANSI, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 |
| _mbsspn, _mbsspn_l | <mbstring.h> | Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 |
For additional compatibility information, see Compatibility in the Introduction.
// crt_strspn.c
// This program uses strspn to determine
// the length of the segment in the string "cabbage"
// consisting of a's, b's, and c's. In other words,
// it finds the first non-abc letter.
//
#include <string.h>
#include <stdio.h>
int main( void )
{
char string[] = "cabbage";
int result;
result = strspn( string, "abc" );
printf( "The portion of '%s' containing only a, b, or c "
"is %d bytes long\n", string, result );
}
Output
The portion of 'cabbage' containing only a, b, or c is 5 bytes long
Reference
String Manipulation (CRT)Locale
Interpretation of Multibyte-Character Sequences
_mbsspnp, _mbsspnp_l, _strspnp, _wcsspnp
strcspn, wcscspn, _mbscspn, _mbscspn_l
strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l