strstr
, , wcsstr
_mbsstr
_mbsstr_l
Возвращает указатель на первое вхождение искомой строки в строке.
Внимание
Функции _mbsstr
и _mbsstr_l
не могут использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
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
strSearch
NULL
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
. Макрос _CRT_CONST_CORRECT_OVERLOADS
определяется, если доступны обе const
версии этих функций и неconst
являются. Если требуется поведение, отличноеconst
от обоих перегрузки C++, определите символ _CONST_RETURN
.
Выходное значение влияет на параметр LC_CTYPE
категории языкового стандарта ; дополнительные сведения см. в разделе . _wsetlocale
setlocale
Версии этих функций, у которых нет _l
суффикса, используют текущий языковой стандарт для этого поведения, зависящее от языкового стандарта; версии, _l
имеющие суффикс, идентичны, за исключением того, что вместо этого они используют переданный параметр языкового стандарта. Дополнительные сведения см. в разделе Locale.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
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 );
}
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