strchr, wcschr, _mbschr, _mbschr_l

Cercare un carattere in una stringa, utilizzando le impostazioni locali correnti o di una determinata categoria dello stato di conversione di LC_CTYPE.

Nota importanteImportante

_mbschr e _mbschr_l non possono essere utilizzati nelle applicazioni eseguite nelle finestre runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /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

Parametri

  • str
    Stringa di origine con terminazione null.

  • c
    Carattere da individuare.

  • locale
    Impostazioni locali da utilizzare.

Valore restituito

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

Note

La funzione di strchr cercare la prima occorrenza di c in str, o restituisce NULL se c non viene trovato.Il carattere di terminazione null è incluso nella ricerca.

wcschr, _mbschr e _mbschr_l disponibili versioni a caratteri estesi e di caratteri multibyte di strchr.Gli argomenti e il valore restituito di wcschr sono stringhe di caratteri di tipo "wide", quelli di _mbschr sono stringhe di caratteri multibyte._mbschr riconosce le sequenze di caratteri multibyte.Inoltre, se la stringa è un puntatore null, _mbschr richiamato il gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, _mbschr restituisce NULL e imposta errno a EINVAL.strchr e wcschr non convalidano i relativi parametri.Altrimenti queste tre funzioni si comportano in modo identico.

Il valore di output è interessato dall'impostazione dell'impostazione di categoria di LC_CTYPE delle impostazioni locali; per ulteriori informazioni, vedere setlocale.Le versioni di queste funzioni senza il suffisso _l utilizzano le impostazioni locali correnti per il comportamento dipendente dalle impostazioni locali; le versioni con il suffisso _l sono identiche, ad eccezione del fatto che utilizzano il parametro delle impostazioni locali che viene passato.Per ulteriori informazioni, vedere Impostazioni locali.

In C, queste funzioni accettano un puntatore const come 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 un non-const non restituisce un puntatore a un non-const.La macro _CONST_CORRECT_OVERLOADS è definito se è entrambe le versioni const e non-const di queste funzioni sono disponibili.Se è necessario che entrambi gli overload C++ abbiano il comportamento non-const, definire il simbolo _CONST_RETURN.

Mapping di routine a Testo generico

TCHAR.H routine

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tcschr

strchr

_mbschr

wcschr

_n/a

n/d

_mbschr_l

n/d

Requisiti

Routine

Intestazione obbligatoria

strchr

<string.h>

wcschr

<string.h> o <wchar.h>

_mbschr, _mbschr_l

<mbstring.h>

Per ulteriori 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 );
}
  

Equivalente .NET Framework

System::String::IndexOf

Vedere anche

Riferimenti

Modifica delle stringhe (CRT)

Impostazioni locali

Interpretazione delle 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