_strspnp、_wcsspnp、_mbsspnp、_mbsspnp_l

返回一个指向给定的字符串而不是另一个给定的字符串的第一个字符的指针。

重要

_mbsspnp 和 _mbsspnp_l 不能用于在 Windows 运行时中执行的应用程序。有关详细信息,请参见 CRT functions not supported with /ZW(CRT 函数不支持使用/ZW)。

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
);

参数

  • str
    要搜索的 null 终止的字符串。

  • charset
    null 终止的字符集。

  • locale
    要使用的区域设置。

返回值

_strspnp、_wcsspnp和 _mbsspnp 返回指向不属于将 charset的字符。str 的第一个字符*。*如果 str 完全由从charset而来的字符,每一个函数会返回 NULL。对于其中每个实例,没有任何返回值保留指示错误。

备注

_mbsspnp 函数返回一个指针指向多字符,它是str 的第一个字符。它不属于charset的字符集。 _mbsspnp 根据当前正在使用的多字节代码页 识别多字节字符序列。 搜索不包括终止空字符。

如果 str 或 charset都 是空指针,则会调用无效参数处理程序,如 参数验证 所述。 如果允许执行继续,则该函数返回 NULL 并将 errno 设置为 EINVAL。

一般文本例程映射

Tchar.h 例程

未定义 _UNICODE 和 _MBCS

已定义 _MBCS

已定义 _UNICODE

_tcsspnp

_strspnp

_mbsspnp

_wcsspnp

_strspnp 和_wcsspnp 是单字节字符,且是 _mbsspnp 的宽字符版本。 _strspnp 和 _wcsspnp 与 _mbsspnp行为相同 ;否则,它们仅用于提供映射不应为任何其他原因使用。 有关详细信息,请参阅 使用一般文本映射一般文本映射

_mbsspnp_l 相同,除非使用传递的区域设置。 有关详细信息,请参阅区域设置

要求

例程

必需的标头

_mbsspnp

<mbstring.h>

_strspnp

<tchar.h>

_wcsspnp

<tchar.h>

有关兼容性的更多信息,请参见兼容性

示例

// 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

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见平台调用示例

请参见

参考

字符串操作 (CRT)

区域设置

多字节字符序列的解释

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