logo

sträng hitta i C++

Sträng find används för att hitta den första förekomsten av en delsträng i den angivna strängen som anropas. Den returnerar indexet för den första förekomsten av delsträngen i strängen från den givna startpositionen. Standardvärdet för startpositionen är 0.

Det är en medlemsfunktion av std::sträng klass.



Syntax:

kasta undantagshantering i java
size_t find (const string& str, size_t pos = 0); // for C++ Style Strings or size_t find (const char* s, size_t pos = 0); // for C-Style Strings>

Parametrar:

    str : Understrängen som ska sökas. s : Understrängen som ska sökas i, angiven som en sträng i C-stil. pos : Den initiala positionen varifrån strängsökningen ska börja.

Returvärde:



  • Funktionen returnerar indexet för den första förekomsten av delsträngen.
  • Om understrängen inte hittas returnerar den string::npos(string::pos är en statisk medlem med dess värde som det högsta möjliga för datatypen size_t).

Komplexitetsanalys:

    Tidskomplexitet: O(N*M), där N är storleken på strängen(str) och M är storleken på delsträngen som ska sökas. Hjälputrymme: O(1)

Exempel:

C++






// C++ program to demonstrate> // working of string.find()> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >string str =>'geeksforgeeks a computer science'>;> >string str1 =>'geeks'>;> > >// Find first occurrence of 'geeks'> >size_t> found = str.find(str1);> >if> (found != string::npos)> >cout <<>'First occurrence is '> <<> >found << endl;> > >// Find next occurrence of 'geeks'.> >// Note here we pass> >// 'geeks' as C style string.> >char> arr[] =>'geeks'>;> >found = str.find(arr, found+1);> >if> (found != string::npos)> >cout <<>'Next occurrence is '> <<> >found << endl;> >return> 0;> }>

>

>

Produktion

First occurrence is 0 Next occurrence is 8>

Hitta förekomsten av en karaktär

Vi kan använda sökfunktionen för att hitta förekomsten av ett enstaka tecken också i strängen.

Syntax:

size_t find (const char c, size_t pos = 0);>

Här, c är karaktären som ska sökas.

Exempel:

bash variabel

C++




// C++ program to demonstrate> // working of string find> // to find occurrence of> // a character> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >string str =>'geeksforgeeks a computer science'>;> >char> c =>'g'>;> >// Find first occurrence of 'g'> >size_t> found = str.find(c);> >if> (found != string::npos)> >cout <<>'First occurrence is '> <<> >found << endl;> > >// Find next occurrence of 'g'> >found = str.find(c, found + 1);> >if> (found != string::npos)> >cout <<>'Next occurrence is '> <<> >found << endl;> >return> 0;> }>

>

>

Produktion

java system.out.println
First occurrence is 0 Next occurrence is 8>

Sök efter en delsträng

Vi kan också söka efter en del av den givna strängen.

Syntax:

size_t find (const char *str, size_t pos, size_t n);>

Här, n är antalet tecken som ska matchas.

Exempel:

C++




// C++ program to demonstrate> // working of string find to> // search a string> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >string str =>'geeksforgeeks a computer science'>;> > >// Only search first 5 characters> >// of 'geeks.practice'> >size_t> found = str.find(>'geeks.practice'>,> >0, 5);> >if> (found != string::npos)> >cout << found << endl;> >return> 0;> }>

>

konvertera byte array till sträng
>

Produktion

0>