logo

strstr() in C/C++

In C/C++ ist std::strstr() eine vordefinierte Funktion, die für den String-Abgleich verwendet wird. ist die Header-Datei, die für String-Funktionen erforderlich ist. Diese Funktion benötigt zwei Zeichenfolgen s1 Und s2 als Argumente und findet das erste Vorkommen der Zeichenfolge s2 in der Zeichenfolge s1 . Der Abgleichvorgang umfasst nicht die abschließenden Nullzeichen („ “), aber die Funktion stoppt hier.

Syntax

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

Parameter

    s1: Dies ist die zu untersuchende Hauptzeichenfolge. s2: Dies ist die Teilzeichenfolge, die in der Zeichenfolge durchsucht werden soll.

Rückgabewert

  • Diese Funktion gibt einen Zeigerpunkt auf das erste Zeichen des gefundenen Zeichens zurück s2 In s1 andernfalls ein Nullzeiger if s2 ist nicht vorhanden s1 .
  • Wenn s2 auf einen leeren String zeigt, wird s1 zurückgegeben.

Beispiel

Das folgende Programm veranschaulicht die Verwendung der Funktion 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;> }>

>

>

Ausgabe

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

Zeitkomplexität: O(n + m), wobei n die Größe von s1 und m die Größe von s2 ist.
Hilfsraum: O(m), wobei m die Größe von s2 ist.

Notiz: Die offizielle Implementierung von strstr() ist nicht spezifiziert, es wird angenommen, dass ihre Implementierung aus einem der Standard-String-Matching-Algorithmen besteht. Hier haben wir angenommen, dass es mit dem Knuth-Morris-Pratt-Algorithmus implementiert wird, der wie oben erwähnt eine zeitliche und räumliche Komplexität aufweist.

Anwendung : Ersetzen Sie eine Zeichenfolge durch eine andere

In diesem Beispiel suchen wir mit Hilfe der Funktion strstr() zunächst nach dem Vorkommen eines Teilstrings STL In s1 und ersetzen Sie danach dieses Wort durch Saiten .

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;> }>

>

Linux-Betriebssystem
>

Ausgabe

Fun with Strings>

Zeitkomplexität: O(n + m), wobei n die Größe von s1 und m die Größe von s2 ist.
Hilfsraum: O(m), wobei m die Größe von s2 ist.