strstr、wcsstr、

您所在的位置:网站首页 wcscmp函数 strstr、wcsstr、

strstr、wcsstr、

2023-10-04 20:08| 来源: 网络整理| 查看: 265

strstr, wcsstr, _mbsstr, _mbsstr_l 项目 06/16/2023

返回指向字符串中的搜索字符串的第一个匹配项的指针。

重要

_mbsstr 和 _mbsstr_l 无法用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数。

语法 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的指针,NULL如果 strSearch 中未显示 ,则返回 str。str 如果 strSearch 指向长度为零的字符串,则函数返回 str。

注解

strstr 函数返回指向 strSearch 中的 str 的第一个匹配项的指针。 搜索不包括终止 null 字符。 wcsstr 是宽字符版本的 strstr;_mbsstr 是多字节字符版本。 的参数和返回值 wcsstr 是宽字符字符串。 的参数和返回值 _mbsstr 是多字节字符串。 _mbsstr 会验证其参数。 如果 str 或 strSearch 为 NULL,则调用无效参数处理程序,如 参数验证 中所述。 如果允许执行继续,则 _mbsstr 将 errno 设置为 EINVAL,并返回 0。 strstr 和 wcsstr 不验证其参数。 否则这三个函数否则具有相同行为。

重要

这些函数可能从缓冲区溢出问题引发威胁。 缓冲区溢出问题可用来攻击系统,因为它们可能允许执行任意代码,这可能导致没有保证的权限提升。 有关详细信息,请参阅 避免缓冲区溢出。

在 C 中,这些函数采用第一个参数的一个 const 指针。 在 C++ 中,有两个重载可用。 采用指向 const 的指针的重载返回指向 const 的指针;采用指向非const 的版本的指针返回指向非const 的指针。 如果这些函数的 const 和非 const 版本可用,则会定义宏 _CRT_CONST_CORRECT_OVERLOADS。 如果这两个 C++ 重载都需要非 const 行为,请定义符号 _CONST_RETURN。

输出值受 LC_CTYPE 的区域设置类别设置的影响;有关详细信息,请参阅setlocale、_wsetlocale。 没有后缀的这些函数 _l 的版本使用此区域设置相关行为的当前区域设置;具有 _l 后缀的版本是相同的,只是它们改用传入的区域设置参数。 有关详细信息,请参阅 Locale。

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。

一般文本例程映射 TCHAR.H 例程 _UNICODE 和 _MBCS 未定义 _MBCS 已定义 _UNICODE 已定义 _tcsstr strstr _mbsstr wcsstr n/a n/a _mbsstr_l n/a 要求 例程所返回的值 必需的标头 strstr wcsstr 或 _mbsstr, _mbsstr_l

有关兼容性的详细信息,请参阅兼容性。

示例 // crt_strstr.c #include #include 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 另请参阅

字符串操作 区域设置 多字节字符序列的解释 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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3