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 str
str
. 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