strchr
, wcschr
, _mbschr
, _mbschr_l
Recherche un caractère dans une chaîne à l’aide des paramètres régionaux actuels ou d’une catégorie d’état de conversion spécifiée LC_CTYPE
.
Important
_mbschr
et _mbschr_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 *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 retournée
Chacune de ces fonctions retourne un pointeur vers la première occurrence de c
in str
, ou NULL
si c
elle n’est pas trouvée.
Notes
La strchr
fonction recherche la première occurrence de c
in str
, ou elle retourne NULL
si c
elle n’est pas trouvée. Le caractère Null de fin est inclus dans la recherche.
wcschr
, _mbschr
et _mbschr_l
sont des versions à caractères larges et à caractères multioctets de strchr
. Les arguments et la valeur de retour sont wcschr
des chaînes à caractères larges. Les arguments et la valeur de retour sont _mbschr
des chaînes de caractères multioctets. _mbschr
reconnaît les séquences de caractères multioctets. En outre, si la chaîne est un pointeur Null, _mbschr
appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à continuer, _mbschr
retourne NULL
et définit errno
à EINVAL
. strchr
et wcschr
ne valident pas leurs paramètres. Ces trois fonctions se comportent sinon de façon identique.
La valeur de sortie est affectée par le paramètre de catégorie LC_CTYPE
des paramètres régionaux ; pour plus d’informations, consultez setlocale
. 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 Locale.
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 _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
.
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 routine de texte générique
TCHAR.H Routine |
_UNICODE et _MBCS non défini |
_MBCS Défini |
_UNICODE Défini |
---|---|---|---|
_tcschr |
strchr |
_mbschr |
wcschr |
Spécifications
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 );
}
String to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
Search char: r
Result: first r found at position 12
Result: last r found at position 30
Voir aussi
Manipulation de chaîne
Paramètres régionaux
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
strrchr
, wcsrchr
, _mbsrchr
, _mbsrchr_l
strstr
, wcsstr
, _mbsstr
, _mbsstr_l
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour