strstr, wcsstr, _mbsstr, _mbsstr_l
Возвращает указатель на первое вхождение строки для поиска в строке.
Важно!
_mbsstr и _mbsstr_l не могут использоваться в приложениях, выполняемых в Среда выполнения Windows.Дополнительные сведения см. в статье Функции 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
Строка, заканчивающаяся нулевым символом, в которой будет производиться поиск.strSearch
Строка, заканчивающаяся нулевым символом, поиск которой будет производиться.locale
Языковой стандарт, который необходимо использовать.
Возвращаемое значение
Возвращает указатель на первое вхождение strSearch в str или NULL, если strSearch не появляется в str. Если strSearch указывает на строку нулевой длины, то функция возвращает str.
Заметки
Функция strstr возвращает указатель на первое вхождение strSearch в str. Поиск не распространяется на завершающий нулевой символ. wcsstr является версией strstr с расширенными символами, а _mbsstr — версией с многобайтовыми знаками. Аргументы и возвращаемое значение wcsstr представляют собой двухбайтовые строки; аргументы и возвращаемое значение _mbsstr представляют собой многобайтовые строки. _mbsstr проверяет свои параметры. Если str или strSearch равно NULL, то вызывается обработчик недопустимого параметра, как описано в Проверка параметров. Если выполнение может быть продолжено, то _mbsstr устанавливает errno в EINVAL и возвращает 0. strstr и wcsstr не проверяют свои параметры. В остальных случаях эти три функции ведут себя идентично.
Примечание по безопасности |
---|
Эти функции могут создать угрозу из проблемы переполнения буфера.Проблемы переполнения буфера могут использоваться для атаки на систему, поскольку они могут допустить выполнение произвольного кода, который может вызвать произвольное повышение прав доступа.Дополнительные сведения см. в разделе Как избежать переполнения буфера. |
В языке C эти функции принимают указатель const для первого аргумента. В языке C++ доступны две перегрузки. Перегрузка, принимающая указатель на const, возвращает указатель на const; версия, которая принимает указатель на не const, возвращает указатель на не const. Макрос _CONST_CORRECT_OVERLOADS определен, если доступны и const и не const версии этих функций. Если требуется не const функциональность для обеих перегрузок C++, укажите символ _CONST_RETURN.
Выходное значение зависит от настройки категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale, _wsetlocale. Версии этих функций без суффикса _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
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l