strstr
, wcsstr
, , _mbsstr
_mbsstr_l
Vrátí ukazatel na první výskyt hledaného řetězce v řetězci.
Důležité
_mbsstr
a _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í str
funkce .
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_CTYPE
kategorie 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 rutina |
_UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_tcsstr |
strstr |
_mbsstr |
wcsstr |
není k dispozici | není k dispozici | _mbsstr_l |
není k dispozici |
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