strstr
, wcsstr
, _mbsstr
, _mbsstr_l
Retorna um ponteiro para a primeira ocorrência de uma cadeia de caracteres de pesquisa em uma cadeia de caracteres.
Importante
_mbsstr
e _mbsstr_l
não podem ser usados em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.
Sintaxe
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
Cadeia de caracteres terminada em nulo para pesquisa.
strSearch
Cadeia de caracteres terminada em nulo para pesquisar.
locale
Localidade a usar.
Valor retornado
Retorna um ponteiro para a primeira ocorrência de strSearch
em str
, ou NULL
se strSearch
não aparecer em str
. Se strSearch
aponta para uma cadeia de caracteres de comprimento zero, a função retornará str
.
Comentários
A função strstr
retorna um ponteiro para a primeira ocorrência de strSearch
em str
. A pesquisa não inclui caracteres nulos de terminação. wcsstr
é a versão de caractere largo de strstr
e _mbsstr
é a versão de caracteres multibyte. Os argumentos e o valor retornado de wcsstr
são cadeias de caracteres largos. Os argumentos e o valor retornado de são cadeias de _mbsstr
caracteres multibyte. _mbsstr
valida seus parâmetros. Se str
ou strSearch
for NULL
, o manipulador de parâmetro inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, _mbsstr
definirá errno
para EINVAL
e retornará 0. strstr
e wcsstr
não validam seus parâmetros. Caso contrário, essas três funções se comportam de forma idêntica.
Importante
Essas funções podem incorrer uma ameaça de um problema de estouro de buffer. Problemas de estouro de buffer podem ser usados para atacar um sistema pois eles podem permitir a execução de código arbitrário, que pode causar uma injustificada elevação de privilégio. Para obter mais informações, confira Como evitar sobrecargas de buffer.
Em C, essas funções usam um ponteiro const
para o primeiro argumento. No C++, duas sobrecargas estão disponíveis. A sobrecarga de colocar um ponteiro para const
retorna um ponteiro para const
; a versão que usa um ponteiro para não const
retorna um ponteiro para não const
. A macro _CRT_CONST_CORRECT_OVERLOADS
é definida se as versões const
e não const
dessas funções estão disponíveis. Se você precisar do comportamento não const
para as sobrecargas de C++, defina o símbolo _CONST_RETURN
.
O valor de saída é afetado pela configuração de categoria da localidade de LC_CTYPE
. Para obter mais informações, consulte setlocale
, _wsetlocale
. As versões dessas funções que não têm o _l
sufixo usam a localidade atual para esse comportamento dependente de localidade; as versões que têm o _l
sufixo são idênticas, exceto que, em vez disso, usam o parâmetro locale que é passado. Para obter mais informações, consulte Localidade.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsstr |
strstr |
_mbsstr |
wcsstr |
n/a | n/a | _mbsstr_l |
n/a |
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
Confira também
Manipulação de cadeia de caracteres
Localidade
Interpretação de sequências de caracteres multibyte
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