strstr, wcsstr, _mbsstr, _mbsstr_l
검색 문자열에는 문자열의 처음에 대 한 포인터를 반환 합니다.
![]() |
---|
_mbsstr및 _mbsstr_l Windows 런타임에서 실행 되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 CRT 함수. |
char *strstr(
const char *str,
const char *strSearch
); // C only
char *strstr(
char *str,
const char *strSearch
); // C++ only
const char *strstr(
const char *str,
const char *strSearch
); // C++ only
wchar_t *wcsstr(
const wchar_t *str,
const wchar_t *strSearch
); // C only
wchar_t *wcsstr(
wchar_t *str,
const wchar_t *strSearch
); // C++ only
const wchar_t *wcsstr(
const wchar_t *str,
const wchar_t *strSearch
); // C++ only
unsigned char *_mbsstr(
const unsigned char *str,
const unsigned char *strSearch
); // C only
unsigned char *_mbsstr(
unsigned char *str,
const unsigned char *strSearch
); // C++ only
const unsigned char *_mbsstr(
const unsigned char *str,
const unsigned char *strSearch
); // C++ only
unsigned char *_mbsstr_l(
const unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C only
unsigned char *_mbsstr_l(
unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C++ only
const unsigned char *_mbsstr_l(
const unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C++ only
매개 변수
str
검색 하려면 null로 끝나는 문자열입니다.strSearch
검색 하려면 null로 끝나는 문자열입니다.locale
사용 하는 로캘.
반환 값
첫 번째 항목으로 포인터를 반환 합니다. strSearch 에서 str, 또는 NULL 경우 strSearch 에 표시 되지 않습니다 str.경우 strSearch 함수를 반환 합니다. 길이가 0 인 문자열을 가리키는 str.
설명
strstr 함수에서 첫 번째 항목으로 포인터를 반환 strSearch 에서 str.검색 종료 null 문자를 포함 하지 않습니다.wcsstr및 _mbsstr 와이드 및 멀티 바이트 문자 버전의 strstr.인수 및 반환 값을 wcsstr 와이드 문자 문자열입니다. _mbsstr 멀티 바이트 문자 문자열입니다._mbsstr매개 변수의 유효성을 검사 합니다.경우 str 또는 strSearch 는 NULL에 설명 된 대로 잘못 된 매개 변수 처리기를 호출 매개 변수 유효성 검사 .실행을 계속 하려면 허용 되는 경우 _mbsstr 설정 errno 에 EINVAL 0을 반환 합니다.strstr및 wcsstr 매개 변수의 유효성을 검사 하지 않습니다.이러한 세 가지 함수 그렇지에 동일 하 게 동작 합니다.
![]() |
---|
이러한 함수는 버퍼 오버런 문제를 가져온에 대 한 잠재적인 위협을 발생 합니다.버퍼 오버런 문제는 자주 방법 시스템 공격에 불필요 한 권한 상승의 결과입니다.자세한 내용은 버퍼 오버런 방지. |
C에서 이러한 함수를 사용을 const 첫 번째 인수에 대 한 포인터입니다.C + +에서는 두 가지 오버 로드를 사용할 수 있습니다.에 대 한 포인터를 사용 하는 오버 로드 const 에 대 한 포인터를 반환 합니다. const. 비에 대 한 포인터를 사용 하는 버전-const 비에 대 한 포인터를 반환-const.매크로 _CONST_CORRECT_OVERLOADS 모두 정의 되어 있는 const 가 아닌-const 버전의이 함수 사용할 수 있는.비 필요로 하는 경우-const 동작 모두 c + + 오버 로드에 대 한 기호 _const_return을 정의 합니다.
출력 값의 설정에 의해 영향을 받지는LC_CTYPE 범주 설정 로케일입니다. 자세한 내용은 >setlocale.없이 이러한 함수 버전을 _l 접미사는 현재 로케일에 대 한이 로케일 종속 동작; 사용 버전으로는 _l 접미사는 대신 전달 로캘 매개 변수를 사용 하는 경우를 제외 하 고 동일 합니다.자세한 내용은 로캘을 참조하십시오.
일반 텍스트 루틴 매핑
TCHAR입니다.H 루틴 |
_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다 |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_tcsstr |
strstr |
_mbsstr |
wcsstr |
n/a |
n/a |
_mbsstr_l |
n/a |
요구 사항
루틴 |
필수 헤더 |
---|---|
strstr |
<string.h> |
wcsstr |
<string.h> 또는 <wchar.h> |
_mbsstr, _mbsstr_l |
<mbstring.h> |
호환성에 대 한 자세한 내용은 호환성.
예제
// crt_strstr.c
#include <string.h>
#include <stdio.h>
char str[] = "lazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] = " 1 2 3 4 5";
char fmt2[] = "12345678901234567890123456789012345678901234567890";
int main( void )
{
char *pdest;
int result;
printf( "String to be searched:\n %s\n", string );
printf( " %s\n %s\n\n", fmt1, fmt2 );
pdest = strstr( string, str );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf( "%s found at position %d\n", str, result );
else
printf( "%s not found\n", str );
}
해당 .NET Framework 항목
참고 항목
참조
strcspn, wcscspn, _mbscspn, _mbscspn_l
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l