logo

strstr() у C/C++

У C/C++ std::strstr() є попередньо визначеною функцією, яка використовується для зіставлення рядків. це заголовний файл, необхідний для рядкових функцій. Ця функція приймає два рядки s1 і s2 як аргументи та знаходить перше входження рядка s2 в рядку s1 . Процес зіставлення не включає кінцеві нульові символи (‘ ’), але функція на цьому зупиняється.

Синтаксис

char * strstr  (const char * s1 , const char * s2 );>

Параметри

    s1 : це основний рядок для перевірки. s2 : це підрядок для пошуку в рядку.

Повернене значення

  • Ця функція повертає вказівник на перший знайдений символ s2 в s1 інакше нульовий покажчик if s2 немає в s1 .
  • Якщо s2 вказує на порожній рядок, повертається s1.

приклад

Наведена нижче програма ілюструє використання функції strstr().



C






// C program to illustrate strstr()> #include> #include> int> main()> {> >// Take any two strings> >char> s1[] =>'techcodeview.com'>;> >char> s2[] =>'for'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >printf>(>'String found '>);> >printf>(>'First occurrence of string '%s' in '%s' is '> >''%s''>,> >s2, s1, p);> >}> >else> >printf>(>'String not found '>);> >return> 0;> }>



>

>

C++




// CPP program to illustrate strstr()> #include> #include> using> namespace> std;> int> main()> {> >// Take any two strings> >char> s1[] =>'techcodeview.com'>;> >char> s2[] =>'for'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >cout <<>'String found'> << endl;> >cout <<>'First occurrence of string ''> << s2> ><<>'' in ''> << s1 <<>'' is ''> << p <<>'''> ><< endl;> >}> >else> {> >cout <<>'String not found'> << endl;> >}> >return> 0;> }>

>

>

Вихід

String found First occurrence of string 'for' in 'techcodeview.com' is 'forGeeks'>

Часова складність: O(n + m), де n — розмір s1, а m — розмір s2.
Допоміжний простір: O(m), де m – розмір s2.

Примітка: Офіційна реалізація strstr() не визначена, передбачається, що її реалізація складається з будь-якого стандартного алгоритму зіставлення рядків. Тут ми припустили, що це реалізовано за допомогою алгоритму Кнута-Морріса-Пратта, який має часову та просторову складність, як зазначено вище.

застосування : замінити рядок іншим

У цьому прикладі за допомогою функції strstr() ми спочатку шукаємо наявність підрядка STL в s1 і після цього замініть це слово на рядки .

C++




// CPP program to illustrate strstr()> #include> #include> using> namespace> std;> int> main()> {> >// Take any two strings> >char> s1[] =>'Fun with STL'>;> >char> s2[] =>'STL'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >strcpy>(p,>'Strings'>);> >cout << s1;> >}> >else> {> >cout <<>'String not found'> << endl;> >}> >return> 0;> }>

>

>

C




// C program to illustrate strstr()> #include> #include> int> main()> {> >// Take any two strings> >char> s1[] =>'Fun with STL'>;> >char> s2[] =>'STL'>;> >char>* p;> >// Find first occurrence of s2 in s1> >p =>strstr>(s1, s2);> >// Prints the result> >if> (p) {> >strcpy>(p,>'Strings'>);> >printf>(>'%s'>, s1);> >}> >else> >printf>(>'String not found '>);> >return> 0;> }>

>

метод java
>

Вихід

Fun with Strings>

Часова складність: O(n + m), де n — розмір s1, а m — розмір s2.
Допоміжний простір: O(m), де m – розмір s2.