Partager via


strstr, wcsstr, _mbsstr, _mbsstr_l

Renvoie un pointeur à la première occurrence d'une chaîne recherchée dans une chaîne.

Important

_mbsstr and _mbsstr_l ne peuvent pas être utilisés dans les applications qui s'exécutent dans le Windows Runtime.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /ZW.

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 terminée par Null à trouver.

  • locale
    Paramètres régionaux à utiliser.

Valeur de retour

Renvoie un pointeur vers la première occurrence de strSearch dans un str, ou NULL si strSearch n'apparaît pas dans str. Si strSearch pointe vers une chaîne de longueur nulle, la fonction renvoie str.

Notes

La fonction strstr renvoie un pointeur vers la première occurrence de strSearch dans str. La recherche ne contient pas les caractères de fin null. wcsstr est la version à caractères larges de strstr et _mbsstr la version à caractères multi-octets. Les arguments et la valeur de retour de wcsstr sont des chaînes à caractères larges ; ceux de _mbsstr sont des chaînes de caractères multioctets. _mbsstr valide ses paramètres. Si str ou strSearch est NULL, le gestionnaire de paramètres non valides est appelé, comme décrit dans Validation de paramètre . Si l'exécution est autorisée à se poursuivre, _mbsstr renvoie 0 et attribue à errno la valeur EINVAL. strstr et wcsstr ne valident pas leurs paramètres. Ces trois fonctions se comportent sinon de façon identique.

Note de sécuritéNote de sécurité

Ces fonctions peuvent entraîner une menace de dépassement de mémoire tampon.Les dépassements de mémoire tampon peuvent être utilisés pour attaquer un système car ils peuvent autoriser l'exécution du code arbitraire, ce qui peut provoquer une augmentation de privilège injustifiée.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 amenant un pointeur vers const renvoie un pointeur vers const ; la version qui amène un pointeur vers non-const renvoie un pointeur vers non-const. La macro _CONST_CORRECT_OVERLOADS est définie si les versions const et non-const de ces fonctions sont disponibles. Si vous avez besoin d'un comportement non-const pour les deux surcharges C++, définissez le symbol _CONST_RETURN.

La valeur de la sortie est affectée par les valeurs de vos paramètres régionaux de LC_CTYPE ; consultez setlocale, _wsetlocale pour plus d'informations. Les versions de ces fonctions n'ayant pas le suffixe _l utilisent les paramètres régionaux pour ce comportement dépendant de vos paramètres régionaux ; les versions avec le suffixe _l sont identiques, sauf qu'elles utilisent à la place les paramètres régionaux transmis. Pour plus d'informations, consultez Paramètres régionaux.

Mappages de routines de texte générique

Routine TCHAR.H

_UNICODE & _MBCS non définis

_MBCS défini

_UNICODE défini

_tcsstr

strstr

_mbsstr

wcsstr

N/A

N/A

_mbsstr_l

N/A

Configuration requise

Routine

En-tête requis

strstr

<string.h>

wcsstr

<string.h> ou <wchar.h>

_mbsstr, _mbsstr_l

<mbstring.h>

Pour plus d'informations à propos de 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 );
}
  

Équivalent .NET Framework

System::String::IndexOf

Voir aussi

Référence

Manipulation de chaînes (CRT)

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