strchr, wcschr, _mbschr_mbschr_l

Trova un carattere in una stringa utilizzando le impostazioni locali correnti o una categoria di stato di conversione specificata LC_CTYPE .

Importante

_mbschr e _mbschr_l non possono essere usati nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (piattaforma UWP (Universal Windows Platform)).

Sintassi

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

Parametri

str
Stringa di origine con terminazione null.

c
Carattere da individuare.

locale
Impostazioni locali da usare.

Valore restituito

Ognuna di queste funzioni restituisce un puntatore alla prima occorrenza di c in stro NULL se c non viene trovato.

Osservazioni:

La strchr funzione trova la prima occorrenza di c in stro restituisce NULL se c non viene trovata. Il carattere di terminazione Null è incluso nella ricerca.

wcschr, _mbschr e _mbschr_l sono le versioni a caratteri wide e a caratteri multibyte di strchr. Gli argomenti e il valore restituito di sono stringhe di wcschr caratteri wide. Gli argomenti e il valore restituito di sono stringhe di _mbschr caratteri multibyte. _mbschr riconosce sequenze di caratteri multibyte. Inoltre, se la stringa è un puntatore Null, _mbschr richiama il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, _mbschr restituisce NULL e imposta errno su EINVAL. strchr e wcschr non convalidare i relativi parametri. A parte ciò, queste tre funzioni si comportano in modo identico.

Il valore di output è interessato dall'impostazione dell'impostazione LC_CTYPE della categoria delle impostazioni locali. Per altre informazioni, vedere setlocale. Le versioni di queste funzioni senza il suffisso _l usano le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali. Le versioni con il suffisso _l sono identiche ma usano il parametro passato relativo alle impostazioni locali. Per altre informazioni, vedere Locale.

In C queste funzioni accettano un puntatore const per il primo argomento. In C++ sono disponibili due overload. L'overload che accetta un puntatore a const restituisce un puntatore a const. La versione che accetta un puntatore a non-const restituisce un puntatore a non-const. La macro _CRT_CONST_CORRECT_OVERLOADS viene definita se sono disponibili entrambe le const versioni e nonconst di queste funzioni. Se è necessario il comportamento nonconst per entrambi gli overload C++, definire il simbolo _CONST_RETURN.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Mapping di routine di testo generico

TCHAR.H Routine _UNICODE e _MBCS non definito _MBCS definito _UNICODE definito
_tcschr strchr _mbschr wcschr

Requisiti

Ciclo Intestazione obbligatoria
strchr <string.h>
wcschr <string.h> oppure <wchar.h>
_mbschr, _mbschr_l <mbstring.h>

Per altre informazioni sulla compatibilità, vedere Compatibilità.

Esempio

// 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

Vedi anche

Manipolazione delle stringhe
impostazioni locali
Interpretazione di sequenze di caratteri multibyte
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