Compartir a través de


strchr, wcschr, _mbschr, _mbschr_l

Busca un carácter en una cadena con la configuración regional actual o una categoría especificada de conversión de estado LC_CTYPE.

Importante

_mbschr y _mbschr_l no se pueden usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución.Para obtener más información, vea Funciones de CRT no admitidas 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

Parámetros

  • str
    Cadena de origen terminada en NULL.

  • c
    Carácter que se va a buscar.

  • locale
    Configuración regional que se va a usar.

Valor devuelto

Cada una de estas funciones devuelve un puntero a la primera aparición de c en str, o NULL si c no se encuentra.

Comentarios

La función strchr encuentra la primera aparición de c en str, o devuelve NULL si c no se encuentra. En la búsqueda se incluye el carácter nulo de terminación.

wcschr, _mbschr y _mbschr_l son versiones de caracteres anchos y multibyte de strchr. Los argumentos y el valor devuelto de wcschr son cadenas de caracteres anchos; los de _mbschr son cadenas de caracteres multibyte. _mbschr reconoce secuencias de caracteres multibyte. Además, si la cadena es un puntero nulo, _mbschr invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, _mbschr devuelve NULL y establece errno en EINVAL. strchr y wcschr no validan sus parámetros. Estas tres funciones se comportan exactamente igual.

El valor de salida se ve afectado por el valor de la categoría LC_CTYPE de la configuración regional. Para obtener más información, vea setlocale. Las versiones de estas funciones sin el sufijo _l usan la configuración regional actual de su comportamiento dependiente de la configuración regional; las versiones con el sufijo _l son idénticas salvo que usan el parámetro locale pasado en su lugar. Para obtener más información, vea Configuración regional.

En C, estas funciones toman un puntero const como primer argumento. En C++, hay disponibles dos sobrecargas. La sobrecarga que toma un puntero a const devuelve un puntero a const; la versión que contiene un puntero a un valor que no es const devuelve un puntero a un valor que no es const. La macro _CONST_CORRECT_OVERLOADS se define si están disponibles tanto las versiones const como no const de estas funciones. Si necesita un comportamiento que no sea const para ambas sobrecargas de C++, defina el símbolo _CONST_RETURN.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tcschr

strchr

_mbschr

wcschr

_n/a

no disponible

_mbschr_l

no disponible

Requisitos

Rutina

Encabezado necesario

strchr

<string.h>

wcschr

<string.h> o <wchar.h>

_mbschr, _mbschr_l

<mbstring.h>

Para obtener más información sobre la compatibilidad, vea Compatibilidad.

Ejemplo

// 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 en .NET Framework

System::String::IndexOf

Vea también

Referencia

Manipulación de cadenas (CRT)

Configuración regional

Interpretación de secuencias de caracteres de varios bytes

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