Kako uporabljati funkcijo find_first_of () v C ++

How Use Find_first_of Function C



V C ++ obstajajo različne vgrajene funkcije za delo s podatki niza. The Najdi_prvi_od () funkcija se uporablja za iskanje lokacije prvega pojavljanja podanega znaka. Ta funkcija vrne položaj prvega pojavljanja niza, ki bo podan kot vrednost argumenta te funkcije. V tej vadnici so bile razložene različne uporabe te funkcije za iskanje niza v C ++.

Predpogoj

Preden preverite primere te vadnice, morate preveriti, ali je prevajalnik g ++ nameščen ali ne v sistemu. Če uporabljate Visual Studio Code, namestite potrebne razširitve za sestavljanje izvorne kode C ++ za ustvarjanje izvedljive kode. Tu je bila aplikacija Visual Studio Code uporabljena za sestavljanje in izvajanje kode C ++.







Značilnosti funkcije find_first_of ()

The Najdi_prvi_od () funkcija lahko vrne različne vrste spremenljivk glede na vrednost prvega argumenta. Vrnil bo iskalni položaj niza, če je prva vrednost argumenta niz. Vrnil bo iskalni položaj niza znakov, če je kazalec na niz znakov podan v prvem argumentu. Če je podana vrednost tretjega argumenta, bo vrnil vmesni položaj. Vrnil bo položaj znakov, če je znak podan v prvem argumentu in obstaja v glavnem nizu. Začetni položaj iskanja je nastavljen v drugem argumentu te funkcije. Spodaj je navedena druga sintaksa te funkcije.



Sintaksa

niz size_t find_first_of (const string & str, size_t pos = 0) const;
c-niz size_t find_first_of (const char* s, size_t pos = 0) const;
medpomnilnik size_t find_first_of (const char* s, size_t pos, size_t n) const;
velikost size_t find_first_of (char c, size_t pos = 0) const;



Primer 1: Poiščite in zamenjajte določen znak niza

Naslednji primer prikazuje način iskanja položaja določenega znaka v nizu. Ustvarite datoteko C ++ z naslednjo kodo, da določen znak zamenjate z drugim. V kodi je Najdi_prvi_od () funkcija je bila uporabljena za iskanje vseh položajev določenega znaka v nizu in zamenjavo znakov z drugim znakom z uporabo zanke. Izvirni niz in zamenjani niz bosta natisnjena po izvedbi kode.





// Vključi za tiskanje izpisa
#vključi
// Vključi za uporabo size_t
#vključi

intglavni()
{
// Inicializiramo spremenljivko niza
ure::vrvicastrData('Dobrodošli v LinuxHintu');
// Natisni izvirni niz
ure::stroški << 'Izvirni niz je:' +strData<< ' n';
// Ugotovite ves položaj znaka 'i'
ure::velikost_tsearchList=strData.Najdi_prvega_('jaz');
// ponovimo zanko, da zamenjamo vse 'i' z '@'
medtem (searchList!=ure::vrvica::npos)
{
strData[searchList] = '@';
searchList=strData.Najdi_prvega_('jaz', searchList+1);
}
// Natisnite spremenjeni niz
ure::stroški << 'Spremenjeni niz je:' +strData<< ' n';

vrnitev 0;
}

Izhod:

Po izvedbi zgornje kode se prikaže naslednji izhod.



Primer 2: Poiščite prvo mesto iskalnih znakov

Ustvarite datoteko C ++ z naslednjo kodo, da poiščete položaj niza z več znaki in vrnete prvo mesto znaka, ki se ujema z glavnim nizom. Podatki niza so bili dodeljeni spremenljivki niza, prvo mesto pa je shranjeno v spremenljivki celega števila. Vrednost položaja se natisne po izvedbi kode.

// Vključi za tiskanje izpisa
#vključi

intglavni()
{
// Inicializiramo spremenljivko niza
ure::vrvicastrData( 'Osnovno programiranje za C ++');
// Razglasimo vmesno spremenljivko za shranjevanje položaja
intpoložaj;
// Poiščite znak 'C ++'
položaj=strData.Najdi_prvega_( 'K ++' );
// Preverite vrednost položaja
če (položaj> = 0)
{
// Natisni položaj, če je kateri koli znak
ure::stroški << 'Znak' <<strData[položaj]
<< '' je našel ' << 'na položaju' <<položaj<< ' n';
}

vrnitev 0;
}

Izhod:

Po izvedbi zgornje kode se prikaže naslednji izhod. Tukaj je lik, ' + 'Niza,' K ++ «Je ugotovil na položaju, 7 glavnega niza, ' Osnovno programiranje v C ++ '.

Primer 3: Poiščite določen znak po določenem položaju

Ustvarite datoteko C ++ z naslednjo kodo za iskanje določenega znaka za določenim položajem. Podatkovni niz je shranjen v spremenljivki niza, določen niz pa se išče za položajem 13. Če je v glavnem nizu najden kateri koli znak iskalnega niza, se vrne vrednost položaja.

// Vključi za tiskanje izpisa
#vključi

intglavni()
{
// Inicializiramo spremenljivko niza
ure::vrvicastrData= 'jej, da živiš, ne živi, ​​da bi jedel';
// Natisni izvirni niz
ure::stroški << 'Izvirni niz je:' +strData<< ' n';
// Natisnite položaj, kjer je bil najden zadnji znak
ure::stroški<<'Zadnji ujemajoči se znak na položaju:'
<<strData.Najdi_prvega_('ob',13) << ' n';
vrnitev 0;
}

Izhod:

Po izvedbi zgornje kode se prikaže naslednji izhod. Tukaj je lik, ' do 'Niza,' ob «Je ugotovil na položaju, petnajst glavnega niza, ' jejte, da živite, ne živite, da bi jedli '.

Primer 4: Poiščite položaj prve ujemajoče se številke

Ustvarite datoteko C ++ z naslednjo kodo, da poiščete vsako številko prvega vektorskega seznama na drugem vektorskem seznamu in vrnete položaj ujemajoče se številke prvega vektorskega seznama. Če se najde ujemajoči se argument, se vrne vrednost položaja; v nasprotnem primeru se natisne sporočilo.

// Vključi za tiskanje izpisa
#vključi
// Vključi za iskanje podatkov v vektorju
#vključi
// Vključi za uporabo vektorskih podatkov
#vključi

intglavni()
{
// Razglasi dva vektorska seznama
ure::vektorseznam1{10,5,65,31,7};
ure::vektorseznam2{2,77,5,38,32,55};
// Poiščite podatke seznama1 v seznamu2
samodejnoizhod=ure::Najdi_prvega_(seznam1.začeti(), seznam1.konec(), seznam2.začeti(), seznam2.konec());
// Preberite položaj ustrezne številke
intpoložaj=ure::razdalja(seznam1.začeti(), izhod);

// Preverite poljubno število list1 s katerim koli številom list2
če (izhod<seznam1.konec()) {
ure::stroški << 'Prva ujemajoča se številka' <<seznam1[položaj] << 'Najdeno na mestu' <<položaj<< ' n';
}
drugače {
ure::stroški << 'Ujemajoče se številke ni bilo mogoče najti. n';
}
}

Izhod:

Po izvedbi zgornje kode se prikaže naslednji izhod. Vrednost števila 5 prvega niza obstaja v drugem nizu in položaj te številke je 1.

Zaključek

Funkcijo find_first_of () lahko uporabite za iskanje znaka ali številke za različne namene programiranja. To funkcijo lahko uporabite za reševanje različnih težav pri iskanju. Upam, da bo programer C ++ lahko po branju te vadnice pravilno uporabil to funkcijo.