Поделиться через


strspn, wcsspn, _mbsspn, _mbsspn_l

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

Важно!

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

Синтаксис

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

Параметры

str
Строка для поиска, завершающаяся символом NULL.

strCharSet
Набор символов, завершающийся символом NULL.

locale
Используемый языковой стандарт.

Возвращаемое значение

Возвращает целочисленное значение, указывающее длину подстроки, str которая состоит полностью из символов.strCharSet Если str начинается символ не в strCharSet, функция возвращает значение 0.

Замечания

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

Функции wcsspn и _mbsspn являются версиями функции strspn для расширенных и многобайтовых символов. Аргументы wcsspn являются строками расширенных символов. Аргументы _mbsspn являются строками многобайтовых символов. Кроме того, функция _mbsspn проверяет свои параметры. Если str или strCharSet есть NULL, вызывается недопустимый обработчик параметров, как описано в разделе проверки параметров. Если выполнение может быть продолжено, параметр _mbspn принимает значение errno, а функция EINVAL возвращает значение 0. strspn и wcsspn не проверяйте их параметры. В остальном эти три функции ведут себя идентично.

Выходное значение зависит от параметра LC_CTYPE категории языкового стандарта. Дополнительные сведения см. в разделе setlocale. Версии этих функций без суффикса _l используют текущий языковой стандарт для данного поведения, зависимого от языкового стандарта. Версии с суффиксом _l идентичны, однако они используют переданный параметр языкового стандарта. Дополнительные сведения см. в разделе Locale.

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

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

Подпрограмма TCHAR.H _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_tcsspn strspn _mbsspn wcsspn
Недоступно Недоступно _mbsspn_l Недоступно

Требования

Маршрут Обязательный заголовок
strspn <string.h>
wcsspn <string.h> или <wchar.h>
_mbsspn, _mbsspn_l <mbstring.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// 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 );
}
The portion of 'cabbage' containing only a, b, or c is 5 bytes long

См. также

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