返回指向一个搜索字符串的第一个匹配项在字符串的。
![]() |
---|
_mbsstr 和 _mbsstr_l 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 CRT 函数不支持与 /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
参数
str
搜索的 null 终止的字符串。strSearch
搜索的 null 终止的字符串。locale
使用的区域设置。
返回值
如果 strSearch 未出现在 str,返回指向 strSearch 第一个匹配项 str的或 NULL。如果 strSearch 指向零长度字符串,则函数返回 str。
备注
strstr 函数返回指向 strSearch 第一个匹配项 str的。搜索不包括终止 null 字符。wcsstr 和 _mbsstr 是 strstr的宽字符和多字节字符版本。参数和返回 wcsstr 的值是宽字符字符串;这些 _mbsstr 的多字节字符字符串。_mbsstr 验证其参数。如果 str 或 strSearch 是 NULL,无效参数调用处理程序,如 参数验证 所述。如果执行允许继续,_mbsstr 设置 errno 到 EINVAL 并返回 0。strstr 和 wcsstr 不验证方法的参数。这三个功能否则具有相同的行为。
![]() |
---|
这些函数会导致缓冲区溢出问题实现的潜在的威胁。缓冲区溢出问题是系统攻击一个常见的方案,使权限的非确保提升。有关更多信息,请参见 避免缓冲区溢出。 |
在 C 中,这些函数采用第一个参数的一 const 指针。在 C++ 中,两个超加载可用。采用指针的超加载到 const 返回指向 const;采用指向非const 的版本返回指向非const。如果 const 和这些功能的非const 的版本,宏_CONST_CORRECT_OVERLOADS 定义。如果对它们 C++ 超加载需要非const 行为,请定义符号_CONST_RETURN。
输出值受设置LC_CTYPE 类设置的影响区域设置;有关更多信息,请参见 setlocale。这些功能的版本不 _l 后缀为该区域设置相关的行为使用当前区域设置;与 _l 后缀的版本相同,只不过它们使用传入的区域设置参数。有关更多信息,请参见区域设置。
一般文本例程映射
TCHAR.H 实例 |
未定义的_UNICODE & _MBCS |
定义的_MBCS |
定义的_UNICODE |
---|---|---|---|
_tcsstr |
strstr |
_mbsstr |
wcsstr |
无 |
无 |
_mbsstr_l |
无 |
要求
实例 |
必需的标头 |
---|---|
strstr |
<string.h> |
wcsstr |
<string.h> 或 <wchar.h> |
_mbsstr, _mbsstr_l |
<mbstring.h> |
有关兼容性的更多信息,请参见 兼容性。
示例
// 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 );
}
.NET Framework 等效项
请参见
参考
strcspn, wcscspn, _mbscspn, _mbscspn_l
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l