_strspnp
, _wcsspnp
, _mbsspnp
, _mbsspnp_l
Returns a pointer to the first character in a given string that isn't in another given string.
Important
_mbsspnp
and _mbsspnp_l
cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported in Universal Windows Platform apps.
Syntax
char *_strspnp(
const char *str,
const char *charset
);
wchar_t *_wcsspnp(
const unsigned wchar_t *str,
const unsigned wchar_t *charset
);
unsigned char *_mbsspnp(
const unsigned char *str,
const unsigned char *charset
);
unsigned char *_mbsspnp_l(
const unsigned char *str,
const unsigned char *charset,
_locale_t locale
);
Parameters
str
Null-terminated string to search.
charset
Null-terminated character set.
locale
Locale to use.
Return value
_strspnp
, _wcsspnp
, and _mbsspnp
return a pointer to the first character in str
that doesn't belong to the set of characters in charset
. Each of these functions returns NULL
if str
consists entirely of characters from charset
. For each of these routines, no return value is reserved to indicate an error.
Remarks
The _mbsspnp
function returns a pointer to the multibyte character that is the first character in str
that doesn't belong to the set of characters in charset
. _mbsspnp
recognizes multibyte-character sequences according to the multibyte code page currently in use. The search doesn't include terminating null characters.
If either str
or charset
is a null pointer, this function invokes the invalid parameter handler, as described in Parameter validation. If execution is allowed to continue, the function returns NULL
and sets errno
to EINVAL
.
By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.
Generic-text routine mappings
Tchar.h routine | _UNICODE and _MBCS not defined |
_MBCS defined |
_UNICODE defined |
---|---|---|---|
_tcsspnp |
_strspnp |
_mbsspnp |
_wcsspnp |
_strspnp
and _wcsspnp
are single-byte character and wide-character versions of _mbsspnp
. _strspnp
and _wcsspnp
behave identically to _mbsspnp
otherwise; they're provided only for this mapping and shouldn't be used for any other reason. For more information, see Using generic-text mappings and Generic-text mappings.
_mbsspnp_l
is identical except that it uses the locale parameter passed in instead. For more information, see Locale.
Requirements
Routine | Required header |
---|---|
_mbsspnp |
<mbstring.h> |
_strspnp |
<tchar.h> |
_wcsspnp |
<tchar.h> |
For more compatibility information, see Compatibility.
Example
// crt_mbsspnp.c
#include <mbstring.h>
#include <stdio.h>
int main( void ) {
const unsigned char string1[] = "cabbage";
const unsigned char string2[] = "c";
unsigned char *ptr = 0;
ptr = _mbsspnp( string1, string2 );
printf( "%s\n", ptr);
}
Output
abbage
See also
String manipulation
Locale
Interpretation of multibyte-character sequences
strspn
, wcsspn
, _mbsspn
, _mbsspn_l
strncat_s
, _strncat_s_l
, wcsncat_s
, _wcsncat_s_l
, _mbsncat_s
, _mbsncat_s_l
strncmp
, wcsncmp
, _mbsncmp
, _mbsncmp_l
strncpy_s
, _strncpy_s_l
, wcsncpy_s
, _wcsncpy_s_l
, _mbsncpy_s
, _mbsncpy_s_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, _wcsnicmp_l
, _mbsnicmp_l
strrchr
, wcsrchr
, _mbsrchr
, _mbsrchr_l