Funktsiooni find_first_of () kasutamine C ++ -is

How Use Find_first_of Function C



Stringiandmetega töötamiseks on C ++ -is erinevaid sisseehitatud funktsioone. The find_first_of () funktsiooni kasutatakse määratud märgi esmakordse asukoha leidmiseks. See funktsioon tagastab stringi esimese esinemise positsiooni, mis antakse selle funktsiooni argumendiväärtusena. Selles õpetuses on selgitatud selle funktsiooni erinevaid kasutusviise C ++ -st stringi otsimiseks.

Eeltingimus

Enne selle õpetuse näidete kontrollimist peate kontrollima, kas kompilaator g ++ on süsteemi installitud või mitte. Kui kasutate Visual Studio koodi, installige käivitatava koodi loomiseks vajalikud laiendused C ++ lähtekoodi kompileerimiseks. Siin on C ++ koodi koostamiseks ja käivitamiseks kasutatud rakendust Visual Studio Code.







Funktsiooni find_first_of () omadused

The find_first_of () funktsioon võib esimese argumendi väärtuse põhjal tagastada erinevat tüüpi muutujaid. See tagastab stringi otsingupositsiooni, kui esimene argumendi väärtus on string. See tagastab märgistringi otsingupositsiooni, kui esimeses argumendis on märgitud märkide massiivi kursor. See tagastab puhverpositsiooni, kui on antud kolmanda argumendi väärtus. See tagastab märgi positsiooni, kui esimeses argumendis on antud märk ja see on põhistringis olemas. Otsingu lähtepositsioon on määratud selle funktsiooni teises argumendis. Selle funktsiooni erinevad süntaksid on toodud allpool.



Süntaks

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;
puhver size_t find_first_of (const char* s, size_t pos, size_t n) const;
tähemärgi suurus_et leidma_esimene_märk (char c, size_t pos = 0) const;



Näide 1: otsige ja asendage stringi konkreetne märk

Järgmine näide näitab viisi, kuidas otsida stringis konkreetse märgi asukohta. Looge C ++ fail järgmise koodiga, et asendada konkreetne märk teise märgiga. Koodis on find_first_of () funktsiooni on kasutatud stringi teatud märgi kõikide positsioonide otsimiseks ja tähemärkide asendamiseks teise tähemärgiga. Algne string ja asendatud string trükitakse pärast koodi täitmist.





// Kaasa väljundi printimiseks
#kaasake
// Kaasa suuruse_t kasutamiseks
#kaasake

intpeamine()
{
// Stringimuutuja initsialiseerimine
tundi::stringstrData('Tere tulemast LinuxHint'i!');
// Prindi algne string
tundi::maksma << 'Algne string on:' +strData<< ' n';
// Uurige tähe 'i' kõiki positsioone
tundi::suurus_tsearchList=strData.leida_esimene_('mina');
// Korda tsüklit, et asendada kõik 'i' tähega '@'
samas (searchList!=tundi::string::npos)
{
strData[searchList] = '@';
searchList=strData.leida_esimene_('mina', searchList+1);
}
// Printige muudetud string
tundi::maksma << 'Muudetud string on:' +strData<< ' n';

tagasi 0;
}

Väljund:

Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund.



Näide 2: otsige otsitavate märkide esimesest positsioonist

Looge järgmise koodiga C ++ -fail, et otsida mitmest tähemärgist koosneva stringi asukohta ja tagastada märgi esimene positsioon, mis sobib põhistringiga. Stringi muutujale on määratud stringiandmed ja esimene positsioon salvestatakse täisarvulises muutujaga. Positsiooni väärtus prinditakse pärast koodi täitmist.

// Kaasa väljundi printimiseks
#kaasake

intpeamine()
{
// Initsialiseeri string muutuja
tundi::stringstrData( 'Põhiline C ++ programmeerimine');
// Deklareeri täisarvu muutuja positsiooni salvestamiseks
intpositsiooni;
// Otsi tähemärki 'C ++'
positsiooni=strData.leida_esimene_( „K ++” );
// Kontrollige positsiooni väärtust
kui (positsiooni> = 0)
{
// Printige positsioon, kui mõni märk on leitud
tundi::maksma << 'Tegelaskuju '' <<strData[positsiooni]
<< '' on leidnud' << 'positsioonil' <<positsiooni<< ' n';
}

tagasi 0;
}

Väljund:

Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund. Siin, tegelane, ' + 'Stringist,' K ++ 'Leidis positsioonilt, 7 peamisest stringist, ' Põhiline C ++ programmeerimine '.

Näide 3: otsige pärast konkreetset positsiooni konkreetset märki

Looge järgmise koodiga C ++ -fail, et otsida teatud märki pärast konkreetset positsiooni. Stringiandmed salvestatakse stringimuutjasse ja teatud stringi otsitakse pärast positsiooni, 13. Kui otsitava stringi mõni märk on peastringist leitud, tagastatakse positsiooni väärtus.

// Kaasa väljundi printimiseks
#kaasake

intpeamine()
{
// Stringimuutuja initsialiseerimine
tundi::stringstrData= 'süüa, et elada, mitte elada, et süüa';
// Prindi algne string
tundi::maksma << 'Algne string on:' +strData<< ' n';
// Printige asukoht, kust viimane märk leiti
tundi::maksma<<'Viimane sobiv märk leitud positsioonilt:'
<<strData.leida_esimene_('kell',13) << ' n';
tagasi 0;
}

Väljund:

Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund. Siin, tegelane, ' et 'Stringist,' kl 'Leidis positsioonilt, viisteist peamisest stringist, ' süüa, et elada, mitte elada, et süüa '.

Näide 4: otsige esimese sobiva numbri asukohta

Looge järgmise koodiga C ++ -fail, et otsida teise vektorite loendi esimese vektoriloendi igast numbrist ja tagastada esimese vektoriloendi vastava numbri asukoht. Kui leitakse sobiv argument, tagastatakse positsiooni väärtus; vastasel juhul prinditakse teade.

// Kaasa väljundi printimiseks
#kaasake
// Kaasa andmed otsimiseks vektorisse
#kaasake
// Kaasa vektorandmete kasutamiseks
#kaasake

intpeamine()
{
// Kahe vektorloendi kuulutamine
tundi::vektornimekiri 1{10,5,65,31,7};
tundi::vektornimekiri2{2,77,5,38,32,55};
// Otsi loendi1 andmeid loendist2
autoväljund=tundi::leida_esimene_(nimekiri 1.alustada(), nimekiri 1.lõpp(), nimekiri2.alustada(), nimekiri2.lõpp());
// Loe sobiva numbri asukohta
intpositsiooni=tundi::kaugus(nimekiri 1.alustada(), väljund);

// Kontrollige suvalist loendi1 arvu ja loendi2 arvu
kui (väljund<nimekiri 1.lõpp()) {
tundi::maksma << 'Esimene vastav number' <<nimekiri 1[positsiooni] << 'leitud asukohast' <<positsiooni<< ' n';
}
muidu {
tundi::maksma << 'Vastavat numbrit ei leitud. n';
}
}

Väljund:

Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund. Esimese massiivi arvväärtus 5 on teises massiivis ja selle arvu asukoht on 1.

Järeldus

Funktsiooni find_first_of () saab kasutada tähemärgi või numbri otsimiseks erinevatel programmeerimise eesmärkidel. Seda funktsiooni saab kasutada erinevate otsinguprobleemide lahendamiseks. Loodan, et C ++ programmeerija saab pärast selle õpetuse lugemist seda funktsiooni korralikult kasutada.