Share via


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 항목

System::String::IndexOf

참고 항목

참조

문자열 조작 (CRT)

로캘

멀티 바이트 문자 시퀀스로 해석

strcspn, wcscspn, _mbscspn, _mbscspn_l

strcmp, wcscmp, _mbscmp

strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l