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имеет типconst T*, возвращаемый тип —const char*. - В противном случае, если
strимеет типT*, возвращаемый тип —char*. - В противном случае, поведение не определено.
(strstr) или указатель на функцию), фактическое объявление функции (1) становится видимым.Поведение не определено, если либо str, либо substr не является указателем на нуль-терминированную байтовую строку.
Параметры
| str | - | указатель на нуль-терминированную байтовую строку для проверки |
| substr | - | указатель на нуль-терминированную байтовую строку для поиска |
Возвращаемое значение
Указатель на первый символ найденной подстроки в str, или нулевой указатель, если такая подстрока не найдена. Если substr указывает на пустую строку, возвращается str.
Пример
#include <string.h>
#include <stdio.h>
void find_str(char const *str, char const *substr)
{
char *pos = strstr(str, substr);
pos ? printf("found the string '%s' in '%s' at position %td\n",
substr, str, pos - str)
: printf("the string '%s' was not found in '%s'\n",
substr, str);
}
int main(void)
{
char *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
Ссылки
- Стандарт 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/w/c/string/byte/strstr