Kā lietot funkciju find_first_of () C ++

How Use Find_first_of Function C



C ++ ir dažādas iebūvētas funkcijas darbam ar virknes datiem. The find_first_of () funkcija tiek izmantota, lai atrastu norādītās rakstzīmes pirmās parādīšanās vietu. Šī funkcija atgriež virknes pirmās parādīšanās pozīciju, kas tiks norādīta kā šīs funkcijas argumenta vērtība. Šajā apmācībā ir izskaidroti dažādi šīs funkcijas lietojumi virknes meklēšanai C ++.

Priekšnosacījums

Pirms šīs apmācības piemēru pārbaudes jums jāpārbauda, ​​vai g ++ kompilators ir instalēts sistēmā vai nav. Ja izmantojat Visual Studio kodu, tad instalējiet nepieciešamos paplašinājumus, lai apkopotu C ++ avota kodu, lai izveidotu izpildāmo kodu. Šeit C ++ koda apkopošanai un izpildei izmantota lietojumprogramma Visual Studio Code.







Funkcijas find_first_of () iezīmes

The find_first_of () funkcija var atgriezt dažāda veida mainīgos, pamatojoties uz pirmā argumenta vērtību. Tas atgriezīs virknes meklēšanas pozīciju, ja pirmā argumenta vērtība ir virkne. Tas atgriezīs rakstzīmju virknes meklēšanas pozīciju, ja rādītājs uz rakstzīmju masīva tiks norādīts pirmajā argumentā. Tas atgriezīs bufera pozīciju, ja tiks norādīta trešā argumenta vērtība. Tas atgriezīs rakstzīmes pozīciju, ja rakstzīme ir norādīta pirmajā argumentā un tā pastāv galvenajā virknē. Meklēšanas sākuma pozīcija ir iestatīta šīs funkcijas otrajā argumentā. Šīs funkcijas atšķirīgā sintakse ir sniegta zemāk.



Sintakse

string size_t find_first_of (const string & str, size_t pos = 0) const;
c-string size_t find_first_of (const char* s, size_t pos = 0) const;
buferis size_t find_first_of (const char* s, size_t pos, size_t n) const;
rakstzīme size_t find_first_of (char c, size_t pos = 0) const;



1. piemērs: meklējiet un aizstājiet virknes rakstzīmi

Šis piemērs parāda veidu, kā virknē meklēt konkrētās rakstzīmes pozīciju. Izveidojiet C ++ failu ar šādu kodu, lai aizstātu konkrēto rakstzīmi ar citu rakstzīmi. Kodā ,. find_first_of () funkcija ir izmantota, lai virknē meklētu visas konkrētas rakstzīmes pozīcijas un aizstātu rakstzīmes ar citu rakstzīmi, izmantojot cilpu. Sākotnējā virkne un aizstātā virkne tiks izdrukāti pēc koda izpildes.





// Iekļaut izvades drukāšanai
#iekļaut
// Iekļaut, lai izmantotu size_t
#iekļaut

intgalvenais()
{
// Inicializēt virknes mainīgo
stundas::virknestrData('Laipni lūdzam LinuxHint');
// Izdrukājiet oriģinālo virkni
stundas::izmaksas << 'Sākotnējā virkne ir šāda:' +strData<< ' n';
// Uzziniet visas rakstzīmes 'i' pozīcijas
stundas::size_tsearchList=strData.atrast_pirmais_('es');
// Atkārtojiet cilpu, lai aizstātu visus “i” ar “@”
kamēr (searchList!=stundas::virkne::npos)
{
strData[searchList] = '@';
searchList=strData.atrast_pirmais_('es', searchList+1);
}
// Izdrukājiet modificēto virkni
stundas::izmaksas << 'Mainītā virkne ir šāda:' +strData<< ' n';

atgriezties 0;
}

Izeja:

Pēc iepriekš minētā koda izpildes parādīsies šāda izvade.



2. piemērs: meklējiet meklējamo rakstzīmju pirmajā pozīcijā

Izveidojiet C ++ failu ar šādu kodu, lai meklētu vairāku rakstzīmju virknes pozīciju un atgrieztu rakstzīmes pirmo pozīciju, kas atbilst galvenajai virknei. Virknes dati ir piešķirti virknes mainīgajam, un pirmā pozīcija tiek saglabāta vesela skaitļa mainīgajā. Pozīcijas vērtība tiks izdrukāta pēc koda izpildes.

// Iekļaut izvades drukāšanai
#iekļaut

intgalvenais()
{
// Inicializēt virknes mainīgo
stundas::virknestrData( 'Pamata C ++ programmēšana');
// Deklarējiet skaitļa mainīgo, lai saglabātu pozīciju
intpozīciju;
// Meklēt rakstzīmi 'C ++'
pozīciju=strData.atrast_pirmais_( “K ++” );
// Pārbaudiet pozīcijas vērtību
ja (pozīciju> = 0)
{
// Izdrukājiet pozīciju, ja ir atrasta kāda rakstzīme
stundas::izmaksas << 'Raksturs '' <<strData[pozīciju]
<< '' ir atradis '' << 'pozīcijā' <<pozīciju<< ' n';
}

atgriezties 0;
}

Izeja:

Pēc iepriekš minētā koda izpildes parādīsies šāda izvade. Lūk, varonis: ' + 'No virknes', K ++ 'Atradis pozīcijā, 7 no galvenās virknes, ' Pamata C ++ programmēšana '.

3. piemērs: meklējiet noteiktu rakstzīmi pēc konkrētās pozīcijas

Izveidojiet C ++ failu ar šādu kodu, lai meklētu noteiktu rakstzīmi pēc konkrētās pozīcijas. Virknes dati tiek saglabāti virknes mainīgajā, un pēc pozīcijas tiek meklēta noteikta virkne, 13. Ja galvenā virknē ir atrasta kāda meklēšanas virknes rakstzīme, pozīcijas vērtība tiks atgriezta.

// Iekļaut izvades drukāšanai
#iekļaut

intgalvenais()
{
// Inicializēt virknes mainīgo
stundas::virknestrData= 'ēst, lai dzīvotu, nevis dzīvot, lai ēst';
// Izdrukājiet oriģinālo virkni
stundas::izmaksas << 'Sākotnējā virkne ir šāda:' +strData<< ' n';
// Izdrukājiet pozīciju, kurā tika atrasta pēdējā rakstzīme
stundas::izmaksas<<'Pēdējā atbilstošā rakstzīme, kas atrasta pozīcijā:'
<<strData.atrast_pirmais_('plkst',13) << ' n';
atgriezties 0;
}

Izeja:

Pēc iepriekš minētā koda izpildes parādīsies šāda izvade. Lūk, varonis: ' uz 'No virknes', plkst 'Atradis pozīcijā, piecpadsmit no galvenās virknes, ' ēst, lai dzīvotu, nevis dzīvot, lai ēst '.

4. piemērs: meklējiet pirmā atbilstošā numura pozīciju

Izveidojiet C ++ failu ar šādu kodu, lai meklētu katru pirmā vektoru saraksta numuru otrajā vektoru sarakstā un atgrieztu pirmā vektoru saraksta atbilstošā numura pozīciju. Ja tiek atrasts atbilstošs arguments, pozīcijas vērtība tiks atgriezta; pretējā gadījumā tiek izdrukāts ziņojums.

// Iekļaut izvades drukāšanai
#iekļaut
// Iekļaut vektora datu meklēšanai
#iekļaut
// Iekļaut vektoru datu izmantošanai
#iekļaut

intgalvenais()
{
// Deklarēt divu vektoru sarakstu
stundas::vektorssaraksts1{10,5,65,31,7};
stundas::vektorssaraksts2{2,77,5,38,32,55};
// Meklēt saraksta1 datus sarakstā2
autoizvade=stundas::atrast_pirmais_(saraksts1.sākt(), saraksts1.beigas(), saraksts2.sākt(), saraksts2.beigas());
// Lasiet atbilstošā numura pozīciju
intpozīciju=stundas::attālums(saraksts1.sākt(), izvade);

// Pārbaudiet, vai saraksts1 atbilst kādam sarakstam2
ja (izvade<saraksts1.beigas()) {
stundas::izmaksas << 'Pirmais atbilstošais numurs' <<saraksts1[pozīciju] << 'atrasts pozīcijā' <<pozīciju<< ' n';
}
citādi {
stundas::izmaksas << 'Nav atrasts atbilstošs numurs. n';
}
}

Izeja:

Pēc iepriekš minētā koda izpildes parādīsies šāda izvade. Pirmā masīva skaitļa vērtība 5 pastāv otrajā masīvā, un šī skaitļa pozīcija ir 1.

Secinājums

Funkciju find_first_of () var izmantot, lai meklētu rakstzīmi vai skaitli dažādiem programmēšanas mērķiem. Šo funkciju var izmantot dažādu meklēšanas problēmu risināšanai. Es ceru, ka C ++ programmētājs pēc šīs apmācības izlasīšanas varēs pareizi izmantot šo funkciju.