logo

strstr() i C/C++

I C/C++ är std::strstr() en fördefinierad funktion som används för strängmatchning. är rubrikfilen som krävs för strängfunktioner. Denna funktion tar två strängar s1 och s2 som argument och hittar den första förekomsten av strängen s2 i snöret s1 . Matchningsprocessen inkluderar inte de avslutande null-tecknen (' '), men funktionen stannar där.

Syntax

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

Parametrar

    s1 : Detta är huvudsträngen som ska undersökas. s2 : Detta är understrängen som ska sökas i sträng.

Returvärde

  • Denna funktion returnerar en pekare till det första tecknet i det hittade s2 i s1 annars en nollpekare om s2 finns inte i s1 .
  • Om s2 pekar på en tom sträng, returneras s1.

Exempel

Nedanstående program illustrerar användningen av strstr()-funktionen.



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

>

>

Produktion

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

Tidskomplexitet: O(n + m), där n är storleken på s1 och m är storleken på s2.
Hjälputrymme: O(m), där m är storleken på s2.

Notera: Den officiella implementeringen av strstr() är ospecificerad, dess implementering antas bestå av någon av standardsträngmatchningsalgoritmerna. Här har vi antagit att det är implementerat med Knuth-Morris-Pratt-algoritmen, som har tid och rumskomplexitet som nämnts ovan.

Ansökan : Byt ut en sträng med en annan

I det här exemplet med hjälp av strstr()-funktionen söker vi först efter förekomsten av delsträng STL i s1 och efter det byt ut det ordet med Strängar .

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

>

hur man byter namn på en katalog linux
>

Produktion

Fun with Strings>

Tidskomplexitet: O(n + m), där n är storleken på s1 och m är storleken på s2.
Hjälputrymme: O(m), där m är storleken på s2.