Kaip naudoti funkciją find_first_of () C ++

How Use Find_first_of Function C



C ++ yra skirtingos integruotos funkcijos, skirtos dirbti su eilutės duomenimis. The find_first_of () funkcija naudojama norint rasti pirmojo nurodyto simbolio atsiradimo vietą. Ši funkcija grąžina pirmojo eilutės, kuri bus pateikta kaip šios funkcijos argumento reikšmė, poziciją. Šiame vadove paaiškinta, kaip įvairiai naudoti šią funkciją ieškant eilutės C ++.

Būtina sąlyga

Prieš tikrindami šios pamokos pavyzdžius, turite patikrinti, ar sistemoje „g ++“ kompiliatorius yra įdiegtas, ar ne. Jei naudojate „Visual Studio Code“, įdiekite reikiamus plėtinius, kad sudarytumėte C ++ šaltinio kodą, kad sukurtumėte vykdomąjį kodą. Čia „Visual Studio Code“ programa buvo naudojama C ++ kodui sudaryti ir vykdyti.







Funkcijos find_first_of () ypatybės

The find_first_of () funkcija gali grąžinti įvairių tipų kintamuosius pagal pirmojo argumento reikšmę. Ji grąžins eilutės paieškos poziciją, jei pirmoji argumento reikšmė yra eilutė. Ji grąžins simbolių eilutės paieškos poziciją, jei žymeklis į simbolių masyvą bus pateiktas pirmajame argumente. Ji grąžins buferio poziciją, jei bus pateikta trečiojo argumento vertė. Ji grąžins simbolio poziciją, jei simbolis bus pateiktas pirmajame argumente ir jis egzistuoja pagrindinėje eilutėje. Pradinė paieškos padėtis nustatyta antrame šios funkcijos argumente. Žemiau pateikiama skirtinga šios funkcijos sintaksė.



Sintaksė

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;
simbolio dydis_t rasti_pirmas_ženklas (char c, size_t pos = 0) const;



1 pavyzdys: ieškokite ir pakeiskite konkretų eilutės simbolį

Šis pavyzdys parodo būdą, kaip ieškoti konkretaus simbolio pozicijos eilutėje. Sukurkite C ++ failą su šiuo kodu, kad pakeistumėte konkretų simbolį kitu simboliu. Kode, find_first_of () funkcija buvo naudojama ieškoti visų tam tikro simbolio pozicijų eilutėje ir pakeisti simbolius kitu simboliu naudojant kilpą. Pradinė eilutė ir pakeista eilutė bus atspausdintos įvykdžius kodą.





// Įtraukti, norint spausdinti išvestį
#įtraukti
// Įtraukti naudojant dydį_t
#įtraukti

tarptpagrindinis()
{
// Inicijuoti eilutės kintamąjį
valandų::eilutėstrData(„Sveiki atvykę į„ LinuxHint “);
// Spausdinti originalią eilutę
valandų::kaina << „Originali eilutė yra:“ +strData<< ' n';
// Sužinokite visas simbolio „i“ pozicijas
valandų::dydis_tsearchList=strData.find_first_of('aš');
// Pakartokite ciklą, kad pakeistumėte visus „i“ į „@“
tuo tarpu (searchList!=valandų::eilutė::npos)
{
strData[searchList] = „@“;
searchList=strData.find_first_of('aš', paieškos sąrašas+1);
}
// Spausdinti modifikuotą eilutę
valandų::kaina << 'Pakeista eilutė yra:' +strData<< ' n';

grįžti 0;
}

Išėjimas:

Įvedus pirmiau nurodytą kodą, pasirodys ši išvestis.



2 pavyzdys: ieškokite pirmoje ieškomų simbolių vietoje

Sukurkite C ++ failą su šiuo kodu, kad surastumėte kelių simbolių eilutės vietą ir grąžintumėte pirmąją simbolio vietą, atitinkančią pagrindinę eilutę. Eilutės duomenys buvo priskirti eilutės kintamajam, o pirmoji vieta saugoma sveiko skaičiaus kintamajame. Pozicijos vertė bus išspausdinta įvykdžius kodą.

// Įtraukti, norint spausdinti išvestį
#įtraukti

tarptpagrindinis()
{
// Inicijuokite eilutės kintamąjį
valandų::eilutėstrData( „Pagrindinis C ++ programavimas“);
// Skelbkite kintamąjį, kad išsaugotumėte poziciją
tarptpoziciją;
// Ieškoti simbolio „C ++“
poziciją=strData.find_first_of( „K ++“ );
// Patikrinkite pozicijos vertę
jei (poziciją> = 0)
{
// Spausdinkite poziciją, jei rastas bet koks simbolis
valandų::kaina << 'Charakteris '' <<strData[poziciją]
<< '' rado' << 'pozicijoje' <<poziciją<< ' n';
}

grįžti 0;
}

Išėjimas:

Įvedus pirmiau nurodytą kodą, pasirodys ši išvestis. Čia personažas: + „Eilutė“, K ++ “Rado pozicijoje, 7 iš pagrindinės eilutės, Pagrindinis C ++ programavimas “.

3 pavyzdys: ieškokite konkretaus simbolio po tam tikros pozicijos

Sukurkite C ++ failą su šiuo kodu, kad ieškotumėte tam tikro simbolio po tam tikros vietos. Eilutės duomenys saugomi eilutės kintamajame, o po pozicijos ieškoma tam tikros eilutės, 13. Jei pagrindinėje eilutėje buvo rastas bet koks ieškomos eilutės simbolis, pozicijos vertė bus grąžinta.

// Įtraukti, norint spausdinti išvestį
#įtraukti

tarptpagrindinis()
{
// Inicijuoti eilutės kintamąjį
valandų::eilutėstrData= „valgyk, kad gyventum, o ne gyvenk, kad valgytum“;
// Spausdinti originalią eilutę
valandų::kaina << „Originali eilutė yra:“ +strData<< ' n';
// Atspausdinkite vietą, kurioje rastas paskutinis simbolis
valandų::kaina<<„Paskutinis rastas simbolis šioje pozicijoje:“
<<strData.find_first_of('prie',13) << ' n';
grįžti 0;
}

Išėjimas:

Įvedus pirmiau nurodytą kodą, pasirodys ši išvestis. Čia personažas: į „Eilutė“, adresu “Rado pozicijoje, penkiolika iš pagrindinės eilutės, valgyti, kad gyventum, o ne gyventi, kad valgytum “.

4 pavyzdys: ieškokite pirmo atitinkančio skaičiaus pozicijos

Sukurkite C ++ failą su šiuo kodu, kad ieškotumėte kiekvieno pirmojo vektorių sąrašo numerio antrajame vektorių sąraše ir grąžintumėte pirmojo vektoriaus sąrašo atitinkančio skaičiaus vietą. Jei randamas atitikimo argumentas, pozicijos vertė bus grąžinta; priešingu atveju pranešimas bus išspausdintas.

// Įtraukti, norint spausdinti išvestį
#įtraukti
// Įtraukti paieškos duomenis į vektorių
#įtraukti
// Įtraukti naudojant vektorinius duomenis
#įtraukti

tarptpagrindinis()
{
// Deklaruoti du vektorinius sąrašus
valandų::vektoriussąrašas1{10,5,65,31,7};
valandų::vektoriussąrašas2{2,77,5,38,32,55};
// Ieškokite sąrašo1 duomenų į sąrašą2
automatinisprodukcija=valandų::find_first_of(sąrašas1.pradėti(), sąrašas1.galas(), sąrašas2.pradėti(), sąrašas2.galas());
// Perskaitykite atitinkamo skaičiaus padėtį
tarptpoziciją=valandų::atstumas(sąrašas1.pradėti(), išvestis);

// Patikrinkite bet kokį sąrašo1 skaičių ir bet kokį sąrašo2 skaičių
jei (produkcija<sąrašas1.galas()) {
valandų::kaina << „Pirmasis atitinkantis skaičius“ <<sąrašas1[poziciją] << „rasta pozicijoje“ <<poziciją<< ' n';
}
Kitas {
valandų::kaina << „Nerasta atitinkamo numerio. n';
}
}

Išėjimas:

Įvedus pirmiau nurodytą kodą, pasirodys ši išvestis. Pirmojo masyvo skaičiaus vertė 5 yra antrajame masyve, o šio skaičiaus padėtis yra 1.

Išvada

Funkcija find_first_of () gali būti naudojama ieškant simbolio ar skaičiaus įvairiems programavimo tikslams. Ši funkcija gali būti naudojama sprendžiant įvairias paieškos problemas. Tikiuosi, kad C ++ programuotojas galės tinkamai naudotis šia funkcija perskaitęs šią pamoką.