strstr
Определён в заголовочном файле <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имеет тип constT*, тип возвращаемого значения — constchar*. - В противном случае, если
strимеет тип T*, тип возвращаемого значения — char*. - В противном случае поведение не определено.
(strstr) или указатель на функцию), объявление реальной функции (1) становится видимым.Поведение не определено, если 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++ для strstr |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/string/byte/strstr