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.