strcspn, wcscspn, _mbscspn, _mbscspn_l
Возвращает индекс первого вхождения символа, принадлежащего набору символов, в строке.
Важно!
_mbschr и _mbschr_lневозможно использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.
size_t strcspn(
const char *str,
const char *strCharSet
);
size_t wcscspn(
const wchar_t *str,
const wchar_t *strCharSet
);
size_t _mbscspn(
const unsigned char *str,
const unsigned char *strCharSet
);
size_t _mbscspn_l(
const unsigned char *str,
const unsigned char *strCharSet,
_locale_t locale
);
Параметры
str
Строка для поиска, завершающаяся символом NULL.strCharSet
Набор символов, завершающийся символом NULL.locale
Языковой стандарт, который необходимо использовать.
Возвращаемое значение
Эти функции возвращают индекс первого символа в str, который принадлежит strCharSet. Если в str нет символов из strCharSet, то возвращается длина str.
Нет зарезервированных возвращаемых значений для указания ошибки.
Заметки
wcscspn и _mbscspn — двубайтовая и многобайтовая символьные версии strcspn. Аргументы wcscspn представляют собой расширенные строки; аргументы _mbscspn представляют собой многобайтовые строки.
_mbscspn проверяет свои параметры. Если либо str, либо strCharSet является указателем на null, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение может быть продолжено, функция возвращает 0 и устанавливает errno в значение EINVAL. strcspn и wcscspn не проверяют свои параметры. В остальных случаях эти три функции ведут себя идентично.
Выходное значение зависит от настройки категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale. Версии этих функций без суффикса _l используют текущий языковой стандарт для данной функциональности, зависящей от языкового стандарта; версии с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.
Универсальное текстовое сопоставление функций
Подпрограмма TCHAR.H |
_UNICODE & _MBCS не определены |
_MBCS определено |
_UNICODE определено |
---|---|---|---|
_tcscspn |
strcspn |
_mbscspn |
wcscspn |
n/a |
n/a |
_mbscspn_l |
n/a |
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
strcspn |
<string.h> |
wcscspn |
<string.h> или <wchar.h> |
_mbscspn, _mbscspn_l |
<mbstring.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_strcspn.c
#include <string.h>
#include <stdio.h>
void test( const char * str, const char * strCharSet )
{
int pos = strcspn( str, strCharSet );
printf( "strcspn( \"%s\", \"%s\" ) = %d\n", str, strCharSet, pos );
}
int main( void )
{
test( "xyzbxz", "abc" );
test( "xyzbxz", "xyz" );
test( "xyzbxz", "no match" );
test( "xyzbxz", "" );
test( "", "abc" );
test( "", "" );
}
Эквивалент в .NET Framework
См. также
Ссылки
Интерпретация последовательностей в многобайтной кодировке
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