Share via


strcspn, wcscspn, _mbscspn, _mbscspn_l

문자 집합에 속한 문자가 문자열에서 처음 나오는 위치의 인덱스를 반환합니다.

Important

Windows 런타임에서 실행되는 애플리케이션에서는 _mbschr_mbschr_l을 사용할 수는 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.

구문

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
사용할 로캘입니다.

반환 값

이러한 함수는 strCharSet에 있는 str의 첫 번째 문자 인덱스를 반환합니다. str의 문자가 strCharSet에 없으면 반환 값은 str의 길이입니다.

반환 값 없음은 오류를 나타내는 데 예약되어 있습니다.

설명

wcscspn_mbscspnstrcspn의 와이드 문자 및 멀티바이트 문자 버전입니다. 인수 wcscspn 는 와이드 문자열입니다. 인수 및 반환 값 _mbscspn 은 멀티바이트 문자열입니다.

_mbscspn는 매개 변수의 유효성을 검사합니다. null 포인터이거나 strstrCharSet null 포인터인 경우 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용한 경우 함수는 0을 반환하고 errnoEINVAL로 설정합니다. strcspn 매개 wcscspn 변수의 유효성을 검사하지 않습니다. 그렇지 않으면 이들 세 함수는 동일하게 작동합니다.

출력 값은 로캘의 LC_CTYPE 범주 설정 설정의 영향을 받습니다. 자세한 내용은 setlocale를 참조하세요. _l 접미사가 없는 이러한 함수 버전은 이 로캘 종속 동작에 현재 로캘을 사용하며, _l 접미사가 있는 버전은 전달된 로캘 매개 변수를 대신 사용하는 경우를 제외하고는 동일합니다. 자세한 내용은 Locale을 참조하세요.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT의 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

TCHAR.H 루틴 _UNICODE 정의 _MBCS 되지 않음 _MBCS 정의 _UNICODE 정의
_tcscspn strcspn _mbscspn wcscspn

요구 사항

루틴에서 반환된 값 필수 헤더
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( "", "" );
}
strcspn( "xyzbxz", "abc" ) = 3
strcspn( "xyzbxz", "xyz" ) = 0
strcspn( "xyzbxz", "no match" ) = 6
strcspn( "xyzbxz", "" ) = 6
strcspn( "", "abc" ) = 0
strcspn( "", "" ) = 0

참고 항목

문자열 조작
Locale
멀티바이트 문자 시퀀스 해석
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
strspn, wcsspn, _mbsspn, _mbsspn_l