Partager via


strstr, , wcsstr_mbsstr, ,_mbsstr_l

Retourne un pointeur désignant la première occurrence d’une chaîne de recherche dans une chaîne.

Important

_mbsstr et _mbsstr_l ne peuvent pas être utilisées dans les applications qui s'exécutent dans Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.

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

Paramètres

str
Chaîne terminée par Null à trouver.

strSearch
Chaîne se terminant par un caractère Null à rechercher.

locale
Paramètres régionaux à utiliser.

Valeur retournée

Retourne un pointeur vers la première occurrence de strSearch in , ou NULL s’il strSearch n’apparaît pas dans strstr. Si strSearch pointe vers une chaîne de longueur nulle, la fonction retourne str.

Notes

La fonction strstr retourne un pointeur désignant la première occurrence de strSearch dans str. La recherche n’inclut pas de caractères null de fin. wcsstr est la version à caractères larges de strstr et _mbsstr est la version à caractères multioctets. Les arguments et la valeur de retour sont wcsstr des chaînes à caractères larges. Les arguments et la valeur de retour sont _mbsstr des chaînes de caractères multioctets. _mbsstr valide ses paramètres. Si str ou strSearch est NULL, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, _mbsstr affecte à errno la valeur EINVAL et retourne 0. strstr et wcsstr ne valident pas leurs paramètres. Ces trois fonctions se comportent sinon de façon identique.

Important

Ces fonctions peuvent être exposées à un risque lié à un dépassement de mémoire tampon. Les dépassements de mémoire tampon peuvent être exploités dans le cadre d’une attaque de système, car ils permettent d’exécuter du code arbitraire, ce qui peut entraîner une élévation injustifiée des privilèges. Pour plus d’informations, consultez Solutions contre les dépassements de mémoire tampon.

En C, ces fonctions acceptent un pointeur const comme premier argument. En C++, deux surcharges sont disponibles. La surcharge qui accepte un pointeur vers const retourne un pointeur vers const ; la version qui accepte un pointeur vers non-const retourne un pointeur vers non-const. La macro _CRT_CONST_CORRECT_OVERLOADS est définie si les const versions et non-versionsconst de ces fonctions sont disponibles. Si vous avez besoin du comportement non-comportementconst pour les deux surcharges C++, définissez le symbole _CONST_RETURN.

La valeur de sortie est affectée par le paramètre de catégorie de paramètres régionaux de LC_CTYPE; pour plus d’informations, consultez setlocale, _wsetlocale. Les versions de ces fonctions qui n’ont pas le _l suffixe utilisent les paramètres régionaux actuels pour ce comportement dépendant des paramètres régionaux ; les versions qui ont le _l suffixe sont identiques, sauf qu’elles utilisent plutôt le paramètre de paramètres régionaux transmis. Pour plus d’informations, consultez Locale.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routines de texte générique

Routine TCHAR.H _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tcsstr strstr _mbsstr wcsstr
n/a n/a _mbsstr_l n/a

Spécifications

Routine En-tête requis
strstr <string.h>
wcsstr <string.h> ou <wchar.h>
_mbsstr, _mbsstr_l <mbstring.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité.

Exemple

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

Voir aussi

Manipulation de chaînes
Paramètres régionaux
Interprétation des séquences de caractères multioctets
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