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_l
wcsncat
_mbsncat
,_mbsncat_l
strncmp
, , wcsncmp
_mbsncmp
_mbsncmp_l
strncpy
, , _strncpy_l
_wcsncpy_l
wcsncpy
_mbsncpy
,_mbsncpy_l
_strnicmp
, , _wcsnicmp
_strnicmp_l
_mbsnicmp
_wcsnicmp_l
,_mbsnicmp_l
strrchr
, , wcsrchr
_mbsrchr
_mbsrchr_l