logo

virknes atrašana programmā C++

Stīga Find tiek izmantots, lai atrastu pirmo apakšvirknes gadījumu norādītajā virknē, kas tiek izsaukta. Tas atgriež apakšvirknes pirmās parādīšanās indeksu virknē no dotās sākuma pozīcijas. Sākuma pozīcijas noklusējuma vērtība ir 0.

Tā ir dalībnieka funkcija std::string klasē.

Sintakse:



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>

Parametri:

    str : meklējamā apakšvirkne. s : meklējamā apakšvirkne, kas norādīta kā C stila virkne. poz : sākotnējā pozīcija, no kuras jāsāk virknes meklēšana.

Atgriešanas vērtība:

  • Funkcija atgriež apakšvirknes pirmās gadījuma indeksu.
  • Ja apakšvirkne netiek atrasta, tā atgriež virkni::npos(virkne::pos ir statisks dalībnieks, kura vērtība ir visaugstākā iespējamā datu tipam size_t).

Sarežģītības analīze:

kajal aggarwal
    Laika sarežģītība: O(N*M), kur N ir virknes(str) lielums un M ir meklējamās apakšvirknes izmērs. Palīgtelpa: O(1)

Piemērs:

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

>

>

Izvade

First occurrence is 0 Next occurrence is 8>

Atrodiet varoņa rašanos

Mēs varam izmantot atrašanas funkciju, lai virknē atrastu arī vienas rakstzīmes sastopamību.

Sintakse:

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

Šeit, c ir meklējamais raksturs.

Piemērs:

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

>

>

Izvade

First occurrence is 0 Next occurrence is 8>

Meklējiet daļēju virkni

Mēs varam arī meklēt daļu no dotās virknes.

Sintakse:

kā izdrukāt java
size_t find (const char *str, size_t pos, size_t n);>

Šeit, n ir atbilstošo rakstzīmju skaits.

Piemērs:

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

>

>

Izvade

0>