strstr, wcsstr, _mbsstr, _mbsstr_l
Retornar 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 em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /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
Cadeia de caracteres NULL- finalizada a pesquisa.strSearch
Cadeia de caracteres NULL- finalizada para procurar por.locale
A localidade usar.
Valor de retorno
Retorna um ponteiro para a primeira ocorrência de strSearch em str, ou NULL se strSearch não aparece em str.Se os pontos de strSearch a uma cadeia de caracteres de comprimento zero, a função retorna str.
Comentários
A função de strstr retorna um ponteiro para a primeira ocorrência de strSearch em str.A pesquisa termine não inclui caracteres nulos.wcsstr e _mbsstr são versões de largo- caractere e o caractere multibyte- de strstr.Os argumentos e o valor de retorno de wcsstr são cadeias de caracteres de largo- caractere; essas de _mbsstr são cadeias de caracteres de multibyte- caractere._mbsstr valida os seus parâmetros.Se str ou strSearch são NULL, o manipulador inválido do parâmetro é invocado, como descrito em Validação de parâmetro .Se a execução é permitida continuar, _mbsstr define errno a EINVAL e retorna 0.strstr e wcsstr não validam seus parâmetros.Essas três funções se comportam de forma idêntica.
Observação de segurança |
---|
Essas funções têm uma ameaça potencial causada por um problema de estouro de buffer.Problemas de estouro de buffer são um método frequente de ataque do sistema, resultando em uma despropositado elevação de privilégio.Para obter mais informações, consulte Evitando estouros de buffer. |
Em C, essas funções recebem um ponteiro de const para o primeiro argumento.Em C++, duas sobrecargas estão disponíveis.A sobrecarga que utiliza um ponteiro para const retorna um ponteiro para const; a versão que tem um ponteiro paraconst não retorna um ponteiro paraconstnão-.O _CONST_CORRECT_OVERLOADS macro é definido se const e versões não- deconst dessas funções estão disponíveis.Se você não requer o comportamento deconst para ambas as sobrecargas de C++, defina o _CONST_RETURN do símbolo.
O valor de saída é afetado pela configuração da categoria deLC_CTYPE de localidade; para obter mais informações, consulte setlocale.As versões dessas funções sem o sufixo de _l usam a localidade atual para este comportamento de são dependentes; as versões com o sufixo de _l são idênticas exceto que usam o parâmetro de localidade passado em vez disso.Para obter mais informações, consulte Localidade.
Mapeamentos da rotina de Genérico- texto
Rotina de TCHAR.H |
_UNICODE & _MBCS não definidos |
_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 a 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 );
}
Equivalência do .NET Framework
Consulte também
Referência
Manipulação de cadeia de caracteres (CRT)
Interpretação de seqüências de caracteres Multibyte
strcspn, wcscspn, _mbscspn, _mbscspn_l
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l