_strspnp, _wcsspnp, _mbsspnp, _mbsspnp_l

Возвращает указатель на первый символ в заданной строке, которая не указана в другой заданной строке.

Важно!

Функции _mbsspnp и _mbsspnp_l не могут использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.

Синтаксис

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 возвращает указатель на первый символ, str который не принадлежит набору символов в charset. Каждая из этих функций возвращаетсяNULL, если str состоит полностью из символов.charset Для каждой из этих подпрограмм отсутствуют зарезервированные возвращаемые значения для указания ошибки.

Замечания

Функция _mbsspnp возвращает указатель на многобайтовый символ, который является первым символом, str который не принадлежит набору символов в charset. Функция _mbsspnp распознает последовательности многобайтовых символов в соответствии с текущей используемой многобайтовой кодовой страницей. Поиск не включает конечные символы NULL.

Если какой-либо str или charset является пустым указателем, эта функция вызывает обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, функция возвращает NULL и устанавливает для параметра errno значение EINVAL.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

Подпрограмма Tchar.h _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_tcsspnp _strspnp _mbsspnp _wcsspnp

_strspnp и _wcsspnp — версии _mbsspnp с однобайтовыми или расширенными символами. _strspnp и _wcsspnp ведет себя аналогично _mbsspnp иначе; они предоставляются только для этого сопоставления и не должны использоваться по какой-либо другой причине. Дополнительные сведения см. в разделе "Использование универсальных текстовых сопоставлений и универсальных текстовых сопоставлений".

_mbsspnp_l идентична указанной за исключением того, что использует языковой стандарт, переданный в качестве параметра. Дополнительные сведения см. в разделе Locale.

Требования

Маршрут Обязательный заголовок
_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);
}

Выходные данные

abbage

См. также

Обработка строк
Локаль
Интерпретация последовательностей многобайтовых символов
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