Функция strstr
Функция strstr ищет первое вхождение
подстроки в строке. В первый параметр
передаётся строка, в которой выполняется
поиск, а во второй - подстрока, которую
нужно найти. Функция возвращает указатель
на начало найденной подстроки внутри
исходной строки. Если подстрока не найдена,
возвращается нулевой указатель NULL.
Функция работает с C-строками, то есть с
массивами символов, заканчивающимися
нулевым символом '\0'. Для её
использования необходимо подключить
заголовочный файл <cstring>.
Синтаксис
const char* strstr(const char* str, const char* substr)
Пример
Давайте найдём подстроку "cd" в
строке "abcde" и выведем найденную
часть строки:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const char* str = "abcde";
const char* res = strstr(str, "cd");
if (res != NULL) {
cout << res << endl;
} else {
cout << "not found" << endl;
}
return 0;
}
Результат выполнения кода:
"cde"
Пример
Функция возвращает указатель на начало найденной подстроки. Давайте вычислим позицию найденной подстроки в строке:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const char* str = "abcde";
const char* res = strstr(str, "cd");
if (res != NULL) {
cout << res - str << endl;
} else {
cout << "not found" << endl;
}
return 0;
}
Результат выполнения кода:
2
Пример
Давайте попробуем найти подстроку, которой нет в строке:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const char* str = "abcde";
const char* res = strstr(str, "xy");
if (res != NULL) {
cout << res << endl;
} else {
cout << "not found" << endl;
}
return 0;
}
Результат выполнения кода:
"not found"