Compartir a través de


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 con /ZW.

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. En la búsqueda no se incluyen los caracteres nulos de finalizació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 wcsstr son cadenas de caracteres anchos; los de _mbsstr son cadenas de 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 validan sus parámetros. Estas tres funciones se comportan exactamente igual.

Nota de seguridadNota sobre la seguridad

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, vea 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 _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.

El valor de salida se ve afectado por el valor de la categoría LC_CTYPE de la configuración regional; vea setlocale, _wsetlocale para obtener más información. 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 que tienen el sufijo _l son idénticas salvo que usan el parámetro de configuración regional que se pasa. Para obtener más información, vea Configuración regional.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tcsstr

strstr

_mbsstr

wcsstr

no disponible

no disponible

_mbsstr_l

no disponible

Requisitos

Rutina

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

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

strcmp, wcscmp, _mbscmp

strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l

basic_string::find