Kako koristiti funkciju find_first_of () u C ++

How Use Find_first_of Function C



U C ++ postoje različite ugrađene funkcije za rad s podacima o nizu. The find_first_of () funkcija se koristi za pronalaženje mjesta prvog pojavljivanja navedenog znaka. Ova funkcija vraća položaj prvog pojavljivanja niza koji će biti dan kao vrijednost argumenta ove funkcije. Različite uporabe ove funkcije za pretraživanje niza u C ++ objašnjene su u ovom vodiču.

Preduvjet

Prije nego provjerite primjere ovog vodiča, morate provjeriti je li g ++ kompajler instaliran ili nije u sustavu. Ako koristite Visual Studio Code, instalirajte potrebna proširenja za sastavljanje izvornog koda C ++ za stvaranje izvršnog koda. Ovdje se aplikacija Visual Studio Code koristila za sastavljanje i izvršavanje koda C ++.







Značajke funkcije find_first_of ()

The find_first_of () funkcija može vratiti različite vrste varijabli na temelju vrijednosti prvog argumenta. Vratit će poziciju pretraživanja niza ako je prva vrijednost argumenta niz. Vratit će poziciju pretraživanja niza znakova ako je u prvom argumentu dat pokazivač na niz znakova. Vratit će poziciju međuspremnika ako se navede vrijednost trećeg argumenta. Vratit će poziciju znaka ako je znak naveden u prvom argumentu i ako postoji u glavnom nizu. Početna pozicija pretraživanja postavljena je u drugom argumentu ove funkcije. U nastavku je navedena različita sintaksa ove funkcije.



Sintaksa

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;
spremnik size_t find_first_of (const char* s, size_t pos, size_t n) const;
znak size_t find_first_of (char c, size_t pos = 0) const;



Primjer 1: Pretražite i zamijenite određeni znak niza

Sljedeći primjer prikazuje način pretraživanja položaja određenog znaka u nizu. Napravite C ++ datoteku sa sljedećim kodom kako biste određeni znak zamijenili drugim znakom. U kodu je find_first_of () funkcija je korištena za pretraživanje svih pozicija određenog znaka u nizu i zamjenu znakova drugim znakom pomoću petlje. Izvorni niz i zamijenjeni niz bit će ispisani nakon izvršavanja koda.





// Uključi za ispis izlaznih podataka
#uključi
// Uključi za upotrebu size_t
#uključi

intglavni()
{
// Inicijalizacija string varijable
sati::nizstrData('Dobro došli u LinuxHint');
// Ispis izvornog niza
sati::trošak << 'Izvorni niz je:' +strData<< ' n';
// Saznajte svu poziciju znaka 'i'
sati::veličina_tsearchList=strData.pronađi_prvi_od('ja');
// Ponovite petlju kako biste zamijenili sve 'i' sa '@'
dok (searchList!=sati::niz::npos)
{
strData[searchList] = '@';
searchList=strData.pronađi_prvi_od('ja', searchList+1);
}
// Ispis izmijenjenog niza
sati::trošak << 'Izmijenjeni niz je:' +strData<< ' n';

povratak 0;
}

Izlaz:

Sljedeći izlaz će se pojaviti nakon izvršavanja gornjeg koda.



Primjer 2: Pretražite prvu poziciju znakova za pretraživanje

Napravite C ++ datoteku sa sljedećim kodom da biste pretražili položaj niza s više znakova i vratili prvu poziciju znaka koja se podudara s glavnim nizom. Nizni podaci dodijeljeni su nizovnoj varijabli, a prva pozicija pohranjena je u cjelobrojnoj varijabli. Vrijednost pozicije bit će ispisana nakon izvršavanja koda.

// Uključi za ispis izlaznih podataka
#uključi

intglavni()
{
// Inicijaliziranje varijable niza
sati::nizstrData( 'Osnovno programiranje na C ++');
// Deklariraj međurednu varijablu za spremanje pozicije
intpoložaj;
// Pretražite znak 'C ++'
položaj=strData.pronađi_prvi_od( 'K ++' );
// Provjerite vrijednost položaja
ako (položaj> = 0)
{
// Ispisuje poziciju ako se pronađe bilo koji znak
sati::trošak << 'Lik '' <<strData[položaj]
<< '' pronašao' << 'na poziciji' <<položaj<< ' n';
}

povratak 0;
}

Izlaz:

Sljedeći izlaz će se pojaviti nakon izvršavanja gornjeg koda. Evo, lik, ‘ + 'Od niza,' K ++ 'Je pronašao na položaju, 7 glavnog niza, ' Osnovno programiranje na C ++ '.

Primjer 3: Pretražite određeni znak nakon određenog položaja

Napravite C ++ datoteku sa sljedećim kodom za pretraživanje određenog znaka nakon određene pozicije. Podaci o nizu spremaju se u varijablu niza, a određeni niz se traži nakon pozicije, 13. Ako je bilo koji znak niza za pretraživanje pronađen u glavnom nizu, tada će se vratiti vrijednost pozicije.

// Uključi za ispis izlaznih podataka
#uključi

intglavni()
{
// Inicijalizacija string varijable
sati::nizstrData= 'jesti da bi živio, a ne živjeti da bi jeo';
// Ispis izvornog niza
sati::trošak << 'Izvorni niz je:' +strData<< ' n';
// Ispis pozicije na kojoj je zadnji znak pronađen
sati::trošak<<'Posljednji odgovarajući znak pronađen na poziciji:'
<<strData.pronađi_prvi_od('na',13) << ' n';
povratak 0;
}

Izlaz:

Sljedeći izlaz će se pojaviti nakon izvršavanja gornjeg koda. Evo, lik, ‘ do 'Od niza,' na 'Je pronašao na položaju, petnaest glavnog niza, ' jesti da bi živio, a ne živjeti da bi jeo '.

Primjer 4: Pretražite položaj prvog odgovarajućeg broja

Napravite C ++ datoteku sa sljedećim kodom za pretraživanje svakog broja prvog popisa vektora u drugom popisu vektora i vratite položaj odgovarajućeg broja prvog popisa vektora. Ako se pronađe odgovarajući argument, tada će se vrijednost pozicije vratiti; u suprotnom će se ispisati poruka.

// Uključi za ispis izlaznih podataka
#uključi
// Uključi za pretraživanje podataka u vektoru
#uključi
// Uključi za upotrebu vektorskih podataka
#uključi

intglavni()
{
// Deklariranje dva vektorska popisa
sati::vektorpopis1{10,5,65,31,7};
sati::vektorpopis2{2,77,5,38,32,55};
// Pretražujemo podatke liste1 u popisu2
autoizlaz=sati::pronađi_prvi_od(popis1.početi(), popis1.kraj(), popis2.početi(), popis2.kraj());
// Očitajte položaj odgovarajućeg broja
intpoložaj=sati::udaljenost(popis1.početi(), izlaz);

// Provjerite da li se bilo koji broj lista1 podudara s bilo kojim brojem popisa2
ako (izlaz<popis1.kraj()) {
sati::trošak << 'Prvi odgovarajući broj' <<popis1[položaj] << 'pronađeno na mjestu' <<položaj<< ' n';
}
drugo {
sati::trošak << 'Nije pronađen odgovarajući broj. n';
}
}

Izlaz:

Sljedeći izlaz će se pojaviti nakon izvršavanja gornjeg koda. Vrijednost broja 5 prvog niza postoji u drugom nizu i položaj ovog broja je 1.

Zaključak

Funkcija find_first_of () može se koristiti za pretraživanje znaka ili broja u različite svrhe programiranja. Ova se funkcija može koristiti za rješavanje različitih problema pretraživanja. Nadam se da će programer na C ++ moći pročitati ovu funkciju nakon čitanja ovog vodiča.