strchr, wcschr, _mbschr, _mbschr_l

Encontra um carácter numa cadeia, usando a localização atual ou uma categoria de estado de conversão especificada LC_CTYPE .

Importante

_mbschr e _mbschr_l não pode ser usado em aplicativos executados no Tempo de Execução do Windows. Para obter mais informações, consulte Funções CRT não suportadas em aplicativos da Plataforma Universal do Windows.

Syntax

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

Parameters

str
Cadeia de caracteres de origem terminada em nulo.

c
Personagem a localizar.

locale
Localidade a ser usada.

Valor de retorno

Cada uma destas funções devolve um apontador para a primeira ocorrência de c em str, ou NULL se c não for encontrado.

Remarks

A strchr função encontra a primeira ocorrência de c em str, ou devolve NULL se c não for encontrada. O carácter nulo de terminação é incluído na pesquisa.

wcschr, _mbschr e _mbschr_l são versões de caracteres largos e multibytes de strchr. Os argumentos e o valor de retorno de são cadeias de wcschr caracteres largos. Os argumentos e o valor de retorno de são cadeias de caracteres de _mbschr multibyte. _mbschr reconhece sequências de caracteres de vários bytes. Além disso, se a cadeia for um ponteiro nulo, _mbschr invoca o manipulador de parâmetros inválido, conforme descrito em Validação de Parâmetros. Se a execução for permitida continuar, _mbschr retorna NULL e define errno para EINVAL. strchr E wcschr não validar os seus parâmetros. Estas três funções comportam-se de forma idêntica.

O valor de saída é afetado pela definição da LC_CTYPE definição de categoria da localidade; para mais informações, veja setlocale. As versões destas funções sem o _l sufixo usam o local atual para este comportamento dependente da localidade; as versões com o _l sufixo são idênticas, exceto que usam o parâmetro local passado em vez disso. Para obter mais informações, consulte Localidade.

Em C, estas funções têm um const ponteiro para o primeiro argumento. Em C++, estão disponíveis duas sobrecargas. A sobrecarga que toma um ponteiro para const devolve um ponteiro para const; a versão que leva um ponteiro para não-const devolve um ponteiro para não-const. A macro _CRT_CONST_CORRECT_OVERLOADS é definida se existirem disponíveis tanto as const versões como as nãoconst versões destas funções. Se exigir o não-comportamentoconst para ambas as sobrecargas em C++, defina o símbolo _CONST_RETURN.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

Mapeamentos de rotina de texto genérico

TCHAR.H rotina _UNICODE e _MBCS não definido _MBCS definido _UNICODE definido
_tcschr strchr _mbschr wcschr

Requirements

Rotina Cabeçalho obrigatório
strchr <string.h>
wcschr <string.h> ou <wchar.h>
_mbschr, _mbschr_l <mbstring.h>

Para mais informações sobre compatibilidade, consulte Compatibilidade.

Example

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

Ver também

Manipulação de cadeias de caracteres
Locale
Interpretação de sequências de caracteres 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