Condividi tramite


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 stro 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