Ako používať funkciu find_first_of () v C ++

How Use Find_first_of Function C



V C ++ existujú rôzne vstavané funkcie na prácu s reťazcovými údajmi. The find_first_of () funkcia sa používa na nájdenie miesta prvého výskytu zadaného znaku. Táto funkcia vráti pozíciu prvého výskytu reťazca, ktorý bude zadaný ako hodnota argumentu tejto funkcie. V tomto návode boli vysvetlené rôzne použitia tejto funkcie na vyhľadávanie reťazca v C ++.

Predpoklad

Pred kontrolou príkladov tohto tutoriálu musíte skontrolovať, či je kompilátor g ++ v systéme nainštalovaný alebo nie. Ak používate kód Visual Studio, nainštalujte si potrebné rozšírenia na kompiláciu zdrojového kódu C ++ na vytvorenie spustiteľného kódu. Tu bola aplikácia Visual Studio Code použitá na kompiláciu a spustenie kódu C ++.







Vlastnosti funkcie find_first_of ()

The find_first_of () funkcia môže vracať rôzne typy premenných na základe hodnoty prvého argumentu. Ak je prvou hodnotou argumentu reťazec, vráti pozíciu vyhľadávania reťazca. Ak je v prvom argumente uvedený ukazovateľ na pole znakov, vráti pozíciu vyhľadávania reťazca znakov. Ak je zadaná hodnota tretieho argumentu, vráti pozíciu vyrovnávacej pamäte. Vráti pozíciu znakov, ak je v prvom argumente uvedený znak, ktorý existuje v hlavnom reťazci. Počiatočná pozícia vyhľadávania je stanovená v druhom argumente tejto funkcie. Rôzna syntax tejto funkcie je uvedená nižšie.



Syntax

reťazec size_t find_first_of (const string & str, size_t pos = 0) const;
c-reťazec size_t find_first_of (const char* s, size_t pos = 0) const;
buffer 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;



Príklad 1: Vyhľadajte a nahraďte konkrétny znak reťazca

Nasledujúci príklad ukazuje spôsob hľadania polohy konkrétneho znaku v reťazci. Vytvorte súbor C ++ s nasledujúcim kódom, ktorý nahradí konkrétny znak iným znakom. V kóde je find_first_of () funkcia sa používa na vyhľadávanie všetkých polôh konkrétneho znaku v reťazci a nahradenie znakov iným znakom pomocou slučky. Pôvodný reťazec a nahradený reťazec sa vytlačia po spustení kódu.





// Zahrnutie pre tlač výstupu
#zahrnúť
// Zahrnúť pre použitie size_t
#zahrnúť

intHlavná()
{
// Inicializácia reťazcovej premennej
hodiny::reťazecstrData(„Vitajte v LinuxHint“);
// Vytlačte pôvodný reťazec
hodiny::náklady << „Pôvodný reťazec je:“ +strData<< ' n';
// Zistite všetky polohy znaku 'i'
hodiny::veľkosť_tsearchList=strData.find_first_of('ja');
// Iteráciou slučky nahraďte všetky „i“ znakom „@“
kým (searchList!=hodiny::reťazec::npos)
{
strData[searchList] = '@';
searchList=strData.find_first_of('ja', searchList+1);
}
// Vytlačte upravený reťazec
hodiny::náklady << 'Upravený reťazec je:' +strData<< ' n';

vrátiť sa 0;
}

Výkon:

Po spustení vyššie uvedeného kódu sa zobrazí nasledujúci výstup.



Príklad 2: Vyhľadajte prvú pozíciu hľadaných znakov

Vytvorte súbor C ++ s nasledujúcim kódom, aby ste vyhľadali pozíciu reťazca viacerých znakov a vrátili prvú pozíciu znaku, ktorý sa zhoduje s hlavným reťazcom. V reťazcovej premennej boli priradené reťazcové údaje a prvá pozícia je uložená v celočíselnej premennej. Po vykonaní kódu sa vytlačí hodnota polohy.

// Zahrnutie pre tlač výstupu
#zahrnúť

intHlavná()
{
// Inicializácia reťazcovej premennej
hodiny::reťazecstrData( „Základné programovanie v C ++“);
// Deklarujte intergerovú premennú na uloženie polohy
intpozíciu;
// Hľadať znak 'C ++'
pozíciu=strData.find_first_of( 'K ++' );
// Skontrolujte hodnotu polohy
keby (pozíciu> = 0)
{
// Vytlačí pozíciu, ak sa nájde ľubovoľný znak
hodiny::náklady << 'Postava' ' <<strData[pozíciu]
<< '' našiel' << „na mieste“ <<pozíciu<< ' n';
}

vrátiť sa 0;
}

Výkon:

Po spustení vyššie uvedeného kódu sa zobrazí nasledujúci výstup. Tu postava, „ + “Reťazca,„ K ++ “Zistil na pozícii, 7 hlavného reťazca, „ Základné programovanie v C ++ '.

Príklad 3: Vyhľadajte konkrétny znak za konkrétnou pozíciou

Vytvorte súbor C ++ s nasledujúcim kódom na vyhľadávanie konkrétneho znaku za konkrétnou pozíciou. Údaje reťazca sú uložené v premennej reťazca a konkrétny reťazec sa vyhľadá za pozíciou 13. Ak bol v hlavnom reťazci nájdený akýkoľvek znak hľadaného reťazca, vráti sa hodnota polohy.

// Zahrnutie pre tlač výstupu
#zahrnúť

intHlavná()
{
// Inicializácia reťazcovej premennej
hodiny::reťazecstrData= „jesť, aby si žil, nie žiť, aby si jedol“;
// Vytlačte pôvodný reťazec
hodiny::náklady << „Pôvodný reťazec je:“ +strData<< ' n';
// Vytlačí pozíciu, kde bol nájdený posledný znak
hodiny::náklady<<„Posledný zodpovedajúci znak nájdený na pozícii:“
<<strData.find_first_of('na',13) << ' n';
vrátiť sa 0;
}

Výkon:

Po spustení vyššie uvedeného kódu sa zobrazí nasledujúci výstup. Tu postava, „ do “Reťazca,„ o “Zistil na pozícii, pätnásť hlavného reťazca, „ jesť, aby si žil, nie žiť, aby si jedol '.

Príklad 4: Vyhľadajte pozíciu prvého zodpovedajúceho čísla

Vytvorte súbor C ++ s nasledujúcim kódom, ktorý vyhľadá každé číslo prvého zoznamu vektorov v druhom zozname vektorov a vráti pozíciu zodpovedajúceho čísla prvého zoznamu vektorov. Ak sa nájde zodpovedajúci argument, vráti sa hodnota polohy; v opačnom prípade sa vytlačí správa.

// Zahrnutie pre tlač výstupu
#zahrnúť
// Zahrnúť na vyhľadávanie údajov vo vektore
#zahrnúť
// Zahrnutie na používanie vektorových údajov
#zahrnúť

intHlavná()
{
// Vyhlásenie zoznamu dvoch vektorov
hodiny::vektorzoznam 1{10,5,65,31,7};
hodiny::vektorzoznam2{2,77,5,38,32,55};
// Vyhľadajte údaje zo zoznamu1 v zozname2
autovýkon=hodiny::find_first_of(zoznam 1.začať(), zoznam1.koniec(), zoznam2.začať(), zoznam2.koniec());
// Prečítajte si pozíciu zodpovedajúceho čísla
intpozíciu=hodiny::vzdialenosť(zoznam 1.začať(), výkon);

// Skontroluje, či sa ľubovoľný počet zoznamov1 zhoduje s akýmkoľvek počtom zoznamov2
keby (výkon<zoznam 1.koniec()) {
hodiny::náklady << „Prvé zodpovedajúce číslo“ <<zoznam 1[pozíciu] << „nájdené na pozícii“ <<pozíciu<< ' n';
}
inak {
hodiny::náklady << „Nebolo nájdené žiadne zodpovedajúce číslo. n';
}
}

Výkon:

Po spustení vyššie uvedeného kódu sa zobrazí nasledujúci výstup. Číselná hodnota 5 prvého poľa existuje v druhom poli a pozícia tohto čísla je 1.

Záver

Funkciu find_first_of () je možné použiť na vyhľadanie znaku alebo čísla na rôzne účely programovania. Túto funkciu je možné použiť na riešenie rôznych problémov s vyhľadávaním. Dúfam, že programátor C ++ dokáže po prečítaní tohto návodu správne používať túto funkciu.