Share via


strstr, wcsstr, _mbsstr, _mbsstr_l

Devuelve un puntero a la primera aparición de una cadena de búsqueda en una cadena.

Nota importanteImportante

_mbsstr y _mbsstr_l no se pueden utilizar en las aplicaciones que se ejecutan en tiempo de ejecución de Windows.Para obtener más información, vea Funciones CRT no compatibles 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 para buscar.

  • strSearch
    Cadena terminada en null a buscar.

  • locale
    Configuración regional a utilizar.

Valor devuelto

Devuelve un puntero a la primera aparición de strSearch en str, o NULL si strSearch no aparece en str.Si los puntos de strSearch en una cadena de longitud cero, la función devuelve str.

Comentarios

La función de strstr devuelve un puntero a la primera aparición de strSearch en str.La búsqueda no incluye finalizar los caracteres null.wcsstr y _mbsstr son versiones de caracteres anchos y de multibyte- carácter de strstr.Los argumentos y el valor devuelto de wcsstr son cadenas de caracteres; las de _mbsstr son cadenas de multibyte- carácter._mbsstr valida sus parámetros.Si str o strSearch es NULL, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, _mbsstr establece errno a EINVAL y devuelve 0.strstr y wcsstr no validan sus parámetros.Estas tres funciones se comportan exactamente igual de otra manera.

Nota de seguridadNota sobre la seguridad

Estas funciones incurren en una amenaza potencial causada por un problema de saturación del búfer.Los problemas de saturación del búfer es un método frecuente de ataque del sistema, lo que da como resultado una elevación de privilegios injustificable.Para obtener más información, vea Para evitar las saturaciones del búfer.

En C, estas funciones toman un puntero de const para el primer argumento.En C++, dos sobrecargas están disponibles.La sobrecarga que toma un puntero a const devuelve un puntero a const; la versión que contiene un puntero const no devuelve un puntero a const no.Se define el _CONST_CORRECT_OVERLOADS macro si const y las versiones no de const de estas funciones están disponibles.Si requiere el comportamiento no de const para ambas sobrecargas de C++, defina el _CONST_RETURN de símbolos.

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

Asignaciones de la rutina de Genérico- texto

Rutina de 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 Multibyte- Carácter

strcspn, wcscspn, _mbscspn, _mbscspn_l

strcmp, wcscmp, _mbscmp

strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l