strstr
, wcsstr
, _mbsstr
_mbsstr_l
Restituisce un puntatore alla prima occorrenza di una stringa di ricerca in una stringa.
Importante
_mbsstr
e _mbsstr_l
non possono essere usati nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).
Sintassi
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
Parametri
str
Stringa con terminazione Null in cui eseguire la ricerca.
strSearch
Stringa con terminazione Null da cercare.
locale
Impostazioni locali da usare.
Valore restituito
Restituisce un puntatore alla prima occorrenza di strSearch
in str
o NULL
se strSearch
non viene visualizzato in str
. Se strSearch
punta a una stringa di lunghezza zero, la funzione restituisce str
.
Osservazioni:
La funzione strstr
restituisce un puntatore alla prima occorrenza di strSearch
in str
. La ricerca non include caratteri Null di terminazione. wcsstr
è la versione a caratteri wide di strstr
e _mbsstr
è la versione a caratteri multibyte. Gli argomenti e il valore restituito di sono stringhe di wcsstr
caratteri wide. Gli argomenti e il valore restituito di sono stringhe di _mbsstr
caratteri multibyte. _mbsstr
convalida i propri parametri. Se str
o strSearch
è NULL
, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri . Se l'esecuzione può continuare, _mbsstr
imposta errno
su EINVAL
e restituisce 0. strstr
e wcsstr
non convalidare i relativi parametri. A parte ciò, queste tre funzioni si comportano in modo identico.
Importante
Queste funzioni potrebbero causare una minaccia da un problema di sovraccarico del buffer. I problemi di sovraccarico del buffer possono essere utilizzati per attaccare un sistema perché possono consentire l'esecuzione di codice arbitrario che può causare un'elevazione dei privilegi non autorizzata. Per altre informazioni, vedere Evitare sovraccarichi del buffer.
In C queste funzioni accettano un puntatore const
per il primo argomento. In C++ sono disponibili due overload. L'overload che accetta un puntatore a const
restituisce un puntatore a const
; la versione che accetta un puntatore a non-const
restituisce un puntatore a non-const
. La macro _CRT_CONST_CORRECT_OVERLOADS
viene definita se sono disponibili entrambe le const
versioni e nonconst
di queste funzioni. Se è necessario il comportamento nonconst
per entrambi gli overload C++, definire il simbolo _CONST_RETURN
.
Il valore di output è interessato dall'impostazione della categoria delle impostazioni locali di LC_CTYPE
. Per altre informazioni, vedere setlocale
, _wsetlocale
. Le versioni di queste funzioni che non hanno il _l
suffisso usano le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali. Le versioni con il _l
suffisso sono identiche, ad eccezione del fatto che usano invece il parametro delle impostazioni locali passato. Per altre informazioni, vedere Locale.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
TCHAR.H routine |
_UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsstr |
strstr |
_mbsstr |
wcsstr |
n/d | n/d | _mbsstr_l |
n/d |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
strstr |
<string.h> |
wcsstr |
<string.h> oppure <wchar.h> |
_mbsstr , _mbsstr_l |
<mbstring.h> |
Per altre informazioni sulla compatibilità, vedere Compatibilità.
Esempio
// 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
Vedi anche
Manipolazione delle stringhe
impostazioni locali
Interpretazione di sequenze di caratteri multibyte
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