strstr
From cppreference.net
|
Определено в заголовке
<string.h>
|
||
|
char
*
strstr
(
const
char
*
str,
const
char
*
substr
)
;
|
(1) | |
|
/*QChar*/
*
strstr
(
/*QChar*/
*
str,
const
char
*
substr
)
;
|
(2) | (начиная с C23) |
1)
Находит первое вхождение строки байтов, завершающейся нулевым символом, на которую указывает
substr
, в строке байтов, завершающейся нулевым символом, на которую указывает
str
. Завершающие нулевые символы не сравниваются.
2)
Обобщённая по типам функция, эквивалентная
(1)
. Пусть
T
будет неквалифицированным символьным типом объекта.
-
-
Если
strимеет тип const T * , возвращаемый тип будет const char * . -
Иначе, если
strимеет тип T * , возвращаемый тип будет char * . - В противном случае поведение не определено.
-
Если
Поведение не определено, если либо str , либо substr не является указателем на байтовую строку, завершающуюся нулевым символом.
Содержание |
Параметры
| str | - | указатель на нуль-терминированную байтовую строку для анализа |
| substr | - | указатель на нуль-терминированную байтовую строку для поиска |
Возвращаемое значение
Указатель на первый символ найденной подстроки в str , или нулевой указатель, если такая подстрока не найдена. Если substr указывает на пустую строку, str возвращается.
Пример
Запустить этот код
#include <stdio.h> #include <string.h> void find_str(char const* str, char const* substr) { char const* pos = strstr(str, substr); if (pos) printf( "Found the string [%s] in [%s] at position %td\n", substr, str, pos - str ); else printf( "The string [%s] was not found in [%s]\n", substr, str ); } int main(void) { char const* str = "one two three"; find_str(str, "two"); find_str(str, ""); find_str(str, "nine"); find_str(str, "n"); return 0; }
Вывод:
Found the string [two] in [one two three] at position 4 Found the string [] in [one two three] at position 0 The string [nine] was not found in [one two three] Found the string [n] in [one two three] at position 1
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.24.5.7 Функция strstr (стр: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.24.5.7 Функция strstr (стр: 269)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.24.5.7 Функция strstr (стр: 369)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.21.5.7 Функция strstr (стр: 332)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 4.11.5.7 Функция strstr
Смотрите также
|
находит первое вхождение символа
(функция) |
|
|
находит последнее вхождение символа
(функция) |
|
|
C++ documentation
для
strstr
|
|