strchr
, wcschr
, , _mbschr
, _mbschr_l
Busca un carácter de una cadena con la configuración regional actual o una categoría de estado de conversión LC_CTYPE
especificada.
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 en aplicaciones de la Plataforma universal de Windows.
Sintaxis
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 strchr
función busca 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 son cadenas de wcschr
caracteres anchos. Los argumentos y el valor devuelto de son cadenas de _mbschr
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 validen 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 más información, consulte 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 Locale.
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 _CRT_CONST_CORRECT_OVERLOADS
se define si están disponibles las versiones const
y no const
de estas funciones. Si necesita un comportamiento que no sea const
para ambas sobrecargas de C++, defina el símbolo _CONST_RETURN
.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina TCHAR.H |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcschr |
strchr |
_mbschr |
wcschr |
Requisitos
Routine | 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 );
}
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
Vea también
Manipulación de cadenas
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