Partager via


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

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

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