strchr, wcschr, _mbschr, _mbschr_l
Recherche un caractère d'une chaîne, à l'aide des paramètres régionaux actuels ou d'une catégorie spécifiée d'état de conversion LC_CTYPE.
Important
_mbschr et _mbschr_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 *strchr(
const char *str,
int c
); // C only
char *strchr(
char * str,
int c
); // C++ only
const char *strchr(
const char * str,
int c
); // C++ only
wchar_t *wcschr(
const wchar_t *str,
wchar_t c
); // C only
wchar_t *wcschr(
wchar_t *str,
wchar_t c
); // C++ only
const wchar_t *wcschr(
const wchar_t *str,
wchar_t c
); // C++ only
unsigned char *_mbschr(
const unsigned char *str,
unsigned int c
); // C only
unsigned char *_mbschr(
unsigned char *str,
unsigned int c
); // C++ only
const unsigned char *_mbschr(
const unsigned char *str,
unsigned int c
); // C++ only
unsigned char *_mbschr_l(
const unsigned char *str,
unsigned int c,
_locale_t locale
); // C only
unsigned char *_mbschr_l(
unsigned char *str,
unsigned int c,
_locale_t locale
); // C++ only
const unsigned char *_mbschr_l(
const unsigned char *str,
unsigned int c,
_locale_t locale
); // C++ only
Paramètres
str
Chaîne source se terminant par null.c
Caractère à trouver.locale
Paramètres régionaux à utiliser.
Valeur de retour
Chacune de ces fonctions retourne un pointeur vers la première occurrence de c dans un str, ou NULL si c est introuvable.
Notes
La fonction strchr recherche la première occurrence de c dans str, ou elle retourne NULL si c est introuvable. Le caractère de fin null est inclus dans la recherche.
wcschr, _mbschr et _mbschr_l sont des versions à caractères élargis et à caractères multi-octets de strchr. Les arguments et la valeur de retour de wcschr sont des chaînes à caractères larges ; ceux de _mbschr sont des chaînes de caractères multioctets. _mbschr identifie des séquences de caractères multioctets. Aussi, si la chaîne de caractères est un pointeur null, la fonction _mbschr appelle le gestionnaire de paramètres invalides comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, _mbschr renvoie NULL et attribue à errno la valeur EINVAL. strchr et wcschr ne valident pas leurs paramètres. Ces trois fonctions se comportent sinon de façon identique.
La valeur de la sortie est affectée par la valeur du paramètre de la catégorie LC_CTYPE des paramètres régionaux ; consultez setlocale pour plus d'informations. Les versions de ces fonctions sans le suffixe _l utilisent les paramètres régionaux pour ce comportement dépendant des 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.
En C, ces fonctions acceptent un pointeur const comme premier argument. En C++, deux surcharges sont disponibles. La surcharge acceptant 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 _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.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE & _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tcschr |
strchr |
_mbschr |
wcschr |
_n/a |
N/A |
_mbschr_l |
N/A |
Configuration requise
Routine |
En-tête requis |
---|---|
strchr |
<string.h> |
wcschr |
<string.h> ou <wchar.h> |
_mbschr, _mbschr_l |
<mbstring.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité.
Exemple
// crt_strchr.c
//
// This program illustrates searching for a character
// with strchr (search forward) or strrchr (search backward).
//
#include <string.h>
#include <stdio.h>
int ch = 'r';
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_s( "String to be searched:\n %s\n", string );
printf_s( " %s\n %s\n\n", fmt1, fmt2 );
printf_s( "Search char: %c\n", ch );
// Search forward.
pdest = strchr( string, ch );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf_s( "Result: first %c found at position %d\n",
ch, result );
else
printf_s( "Result: %c not found\n", ch );
// Search backward.
pdest = strrchr( string, ch );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf_s( "Result: last %c found at position %d\n", ch, result );
else
printf_s( "Result:\t%c not found\n", ch );
}
Équivalent .NET Framework
Voir aussi
Référence
Interprétation des séquences de caractères multioctets
strcspn, wcscspn, _mbscspn, _mbscspn_l
strncat, _strncat_l, wcsncat, _wcsncat_l, _mbsncat, _mbsncat_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l