Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 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