strstr
, wcsstr
, , _mbsstr
, _mbsstr_l
Devuelve un puntero a la primera aparición de una cadena de búsqueda en una cadena.
Importante
_mbsstr
y _mbsstr_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 *strstr(
const char *str,
const char *strSearch
); // C only
char *strstr(
char *str,
const char *strSearch
); // C++ only
const char *strstr(
const char *str,
const char *strSearch
); // C++ only
wchar_t *wcsstr(
const wchar_t *str,
const wchar_t *strSearch
); // C only
wchar_t *wcsstr(
wchar_t *str,
const wchar_t *strSearch
); // C++ only
const wchar_t *wcsstr(
const wchar_t *str,
const wchar_t *strSearch
); // C++ only
unsigned char *_mbsstr(
const unsigned char *str,
const unsigned char *strSearch
); // C only
unsigned char *_mbsstr(
unsigned char *str,
const unsigned char *strSearch
); // C++ only
const unsigned char *_mbsstr(
const unsigned char *str,
const unsigned char *strSearch
); // C++ only
unsigned char *_mbsstr_l(
const unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C only
unsigned char *_mbsstr_l(
unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C++ only
const unsigned char *_mbsstr_l(
const unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C++ only
Parámetros
str
Cadena terminada en NULL que se va a buscar.
strSearch
Cadena terminada en NULL que se va a buscar.
locale
Configuración regional que se va a usar.
Valor devuelto
Devuelve un puntero a la primera aparición de strSearch
en str
, o NULL
si strSearch
no aparece en str
. Si strSearch
señala a una cadena de longitud cero, la función devuelve str
.
Comentarios
La función strstr
devuelve un puntero a la primera aparición de strSearch
en str
. La búsqueda no incluye caracteres NULOs de terminación. wcsstr
es la versión con caracteres anchos de strstr
y _mbsstr
es la versión de caracteres multibyte. Los argumentos y el valor devuelto de son cadenas de wcsstr
caracteres anchos. Los argumentos y el valor devuelto de son cadenas de _mbsstr
caracteres multibyte. _mbsstr
valida sus parámetros. Si str
o strSearch
es NULL
, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros . Si la ejecución puede continuar, _mbsstr
establece errno
en EINVAL
y devuelve 0. strstr
y wcsstr
no validen sus parámetros. Estas tres funciones se comportan exactamente igual.
Importante
Estas funciones podrían provocar la amenaza de un problema de saturación del búfer. Los problemas de saturación del búfer se pueden usar para atacar un sistema, porque pueden permitir la ejecución de código arbitrario, lo que podría dar lugar a un aumento de privilegios injustificado. Para obtener más información, consulte Evitar saturaciones del búfer.
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
.
El valor de salida se ve afectado por el valor de la categoría de configuración regional de LC_CTYPE
; para más información, consulte , setlocale
, _wsetlocale
. Las versiones de estas funciones que no tienen el _l
sufijo usan la configuración regional actual para este comportamiento dependiente de la configuración regional; las versiones que tienen el _l
sufijo son idénticas, excepto que en su lugar usan el parámetro de configuración regional que se pasa. Para obtener más información, vea Locale.
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 |
---|---|---|---|
_tcsstr |
strstr |
_mbsstr |
wcsstr |
n/a | n/a | _mbsstr_l |
n/a |
Requisitos
Routine | Encabezado necesario |
---|---|
strstr |
<string.h> |
wcsstr |
<string.h> o <wchar.h> |
_mbsstr , _mbsstr_l |
<mbstring.h> |
Para obtener más información sobre la compatibilidad, vea Compatibilidad.
Ejemplo
// crt_strstr.c
#include <string.h>
#include <stdio.h>
char str[] = "lazy";
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( "String to be searched:\n %s\n", string );
printf( " %s\n %s\n\n", fmt1, fmt2 );
pdest = strstr( string, str );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf( "%s found at position %d\n", str, result );
else
printf( "%s not found\n", str );
}
String to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
lazy found at position 36
Vea también
Manipulación de cadenas
Configuración regional
Interpretación de secuencias de caracteres de varios bytes
strcspn
, wcscspn
, , _mbscspn
, _mbscspn_l
strcmp
, , wcscmp
, _mbscmp
strpbrk
, wcspbrk
, , _mbspbrk
, _mbspbrk_l
strrchr
, wcsrchr
, , _mbsrchr
, _mbsrchr_l
strspn
, wcsspn
, , _mbsspn
, _mbsspn_l
basic_string::find