Sdílet prostřednictvím


strstr, wcsstr, _mbsstr, _mbsstr_l

Vrátí ukazatel na první výskyt hledaného řetězce v řetězci.

Důležité

_mbsstra _mbsstr_l nelze je použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.

Syntaxe

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

Parametry

str
Řetězec ukončený hodnotou null, který se má prohledávat.

strSearch
Řetězec ukončený hodnotou null, který se má vyhledat.

locale
Národní prostředí, které se má použít.

Vrácená hodnota

Vrátí ukazatel na první výskyt strSearch in str, nebo NULL pokud strSearch se nezobrazí v str. Pokud strSearch odkazuje na řetězec nulové délky, vrátí strfunkce .

Poznámky

Funkce strstr vrátí ukazatel na první výskyt strSearch v str. Hledání neobsahuje ukončující znaky null. wcsstr je verze širokého znaku strstr a _mbsstr je verze s vícebajtovým znakem. Argumenty a návratová hodnota jsou řetězce širokého znaku wcsstr . Argumenty a návratová _mbsstr hodnota jsou řetězce s vícebajtovými znaky. _mbsstr ověří jeho parametry. Pokud str nebo strSearch je NULL, je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru . Pokud je spuštění povoleno pokračovat, _mbsstr nastaví errno hodnotu EINVAL 0 a vrátí hodnotu 0. strstr a wcsstr neověřujte jejich parametry. Tyto tři funkce se chovají stejně jinak.

Důležité

Tyto funkce můžou ohrozit problém s přetečením vyrovnávací paměti. Problémy s přetečením vyrovnávací paměti je možné použít k útoku na systém, protože umožňují spuštění libovolného kódu, což může způsobit neoprávněné zvýšení oprávnění. Další informace najdete v tématu Zabránění přetečení vyrovnávací paměti.

V jazyce C tyto funkce přebírají const ukazatel pro první argument. V jazyce C++ jsou k dispozici dvě přetížení. Přetížení, které přebírá ukazatel, aby const vrátil ukazatel na const; verze, která přebírá ukazatel na ne-const vrátí ukazatel na non-const. _CRT_CONST_CORRECT_OVERLOADS Makro je definováno, pokud jsou k dispozici obě const i jinéconst verze těchto funkcí. Pokud pro obě přetížení jazyka C++ požadujete jinéconst chování, definujte symbol _CONST_RETURN.

Výstupní hodnota je ovlivněna nastavením LC_CTYPEkategorie národního prostředí ; další informace naleznete v tématu setlocale, _wsetlocale. Verze těchto funkcí, které nemají příponu _l , používají aktuální národní prostředí pro toto chování závislé na národním prostředí; verze, které mají příponu _l , jsou stejné s tím rozdílem, že místo toho používají předaný parametr národního prostředí. Další informace naleznete v tématu Národní prostředí.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

TCHAR.H Rutinní _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_tcsstr strstr _mbsstr wcsstr
N/a N/a _mbsstr_l N/a

Požadavky

Rutina Požadovaný hlavičkový soubor
strstr <string.h>
wcsstr <string.h> nebo <wchar.h>
_mbsstr, _mbsstr_l <mbstring.h>

Další informace o kompatibilitě naleznete v tématu Kompatibilita.

Příklad

// 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 );
}
String to be searched:
   The quick brown dog jumps over the lazy fox
            1         2         3         4         5
   12345678901234567890123456789012345678901234567890

lazy found at position 36

Viz také

Manipulace s řetězci
Národní prostředí
Interpretace vícebajtových sekvencí znaků
strcspn, wcscspn, _mbscspn, _mbscspn_l
strcmp, wcscmp, _mbscmp
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l
strspn, wcsspn, _mbsspn, _mbsspn_l
basic_string::find