Partilhar via


strstr, wcsstr, _mbsstr, _mbsstr_l

Retornar um ponteiro para a primeira ocorrência de uma seqüência de Pesquisar em uma seqüência de caracteres.

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
    Seqüência terminada por caractere nulo para pesquisar.

  • strSearch
    Seqüência terminada por caractere nulo para pesquisar.

  • locale
    Localidade usar.

Valor de retorno

Retorna um ponteiro para a primeira ocorrência de strSearch em str, ou NULL Se strSearch não é exibido na str. If strSearch aponta para uma seqüência de caracteres de comprimento zero, a função retornará str.

Comentários

The strstr função retorna um ponteiro para a primeira ocorrência de strSearch em str. A Pesquisar não inclui caracteres nulo de terminação.wcsstr e _mbsstrsão versões de caractere largo e caracteres de multibyte de strstr. Os argumentos e o valor retornado do wcsstr são caractere largos strings; as de _mbsstr são seqüências de caractere de multibyte. _mbsstr valida os parâmetros. If str ou strSearch é NULL, o manipulador de parâmetro inválido é chamado, conforme descrito em Validação de parâmetro . Se a execução for permitida para continuar, _mbsstr Define errno para EINVAL e retorna 0. strstr e wcsstr não validam seus parâmetros. Especifique estas três funções identicamente outro comportam.

Observação de segurança:

Essas funções incorrer em uma ameaça potencial colocada um problema de saturação de buffer.Problemas de saturação de buffer são um método de ataque do sistema, resultando em uma elevação do privilégio unwarranted freqüente.Para obter mais informações, consulte Evitar saturações de buffer.

No C, essas funções utilizam um const ponteiro para o primeiro argumento. No C++, estão disponível duas sobrecargas.A sobrecarga levando um ponteiro para const Retorna um ponteiro para const; a versão que leva um ponteiro para não-const Retorna um ponteiro para não-const. _CONST_CORRECT_OVERLOADS macro está definido se ambos os o const e não-const estão disponível versões dessas funções. Se você precisar de não-const comportamento para ambas as sobrecargas de C++, definir _CONST_RETURN símbolo.

O valor de saída é afetado pela configuração do LC_CTYPE categoria de configuração da localidade; para obter mais informações, consulte setlocale.As versões dessas funções sem o _l sufixo use a localidade corrente para esse comportamento dependente de localidade; as versões com o _l sufixo são idênticas exceto que usarem o parâmetro de localidade passado em vez disso. For more information, see Localidade.

Mapeamentos de rotina de texto genérica

Rotina TCHAR.H

_UNICODE & _MBCS não definido

_MBCS definido

_UNICODE definido

_tcsstr

strstr

_mbsstr

wcsstr

n/d

n/d

_mbsstr_l

n/d

Requisitos

Rotina

Cabeçalho necessário

strstr

<string.h>

wcsstr

<string.h> ou <wchar.h>

_mbsstr, _mbsstr_l

<mbstring.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

// 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

Equivalente do NET Framework

sistema::String::IndexOf

Consulte também

Referência

Manipulação de seqüência de caracteres (CRT)

Localidade

Interpretação de seqüências de caractere multibyte

strcspn, wcscspn, _mbscspn, _mbscspn_l

strcmp wcscmp, _mbscmp

strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l