Find_first_of () -toiminnon käyttäminen C ++: ssa

How Use Find_first_of Function C



C ++: ssa on erilaisia ​​sisäänrakennettuja toimintoja, jotka toimivat merkkijonodatan kanssa. The find_first_of () -toimintoa käytetään määritetyn merkin ensimmäisen esiintymispaikan löytämiseen. Tämä funktio palauttaa merkkijonon ensimmäisen esiintymän paikan, joka annetaan tämän funktion argumenttiarvoksi. Tässä oppaassa on selitetty tämän toiminnon eri käyttötarkoitukset merkkijonon etsimiseen C ++: ssa.

Edellytys

Ennen kuin tarkistat tämän opetusohjelman esimerkit, sinun on tarkistettava, että g ++ -kääntäjä on asennettu tai ei järjestelmään. Jos käytät Visual Studio Codea, asenna tarvittavat laajennukset C ++ -lähdekoodin kääntämiseksi suoritettavan koodin luomiseksi. Tässä Visual Studio Code -sovellusta on käytetty C ++ -koodin kääntämiseen ja suorittamiseen.







Find_first_of () -toiminnon ominaisuudet

The find_first_of () funktio voi palauttaa erityyppisiä muuttujia ensimmäisen argumentin arvon perusteella. Se palauttaa merkkijonon hakupaikan, jos ensimmäinen argumentin arvo on merkkijono. Se palauttaa merkkijonon hakukohdan, jos merkkijonon osoitin annetaan ensimmäisessä argumentissa. Se palauttaa puskuripaikan, jos kolmannen argumentin arvo annetaan. Se palauttaa merkin sijainnin, jos merkki annetaan ensimmäisessä argumentissa ja se on päämerkkijonossa. Haun aloituskohta asetetaan tämän funktion toisessa argumentissa. Tämän toiminnon eri syntaksi on esitetty alla.



Syntaksi

merkkijono size_t find_first_of (const merkkijono & str, size_t pos = 0) const;
c-merkkijono size_t find_first_of (const char* s, size_t pos = 0) const;
puskurin koko_t löytää_ensimmäinen_ (const char* s, size_t pos, size_t n) const;
merkin koko_t löytää_esimerkki_ (char c, size_t pos = 0) const;



Esimerkki 1: Etsi ja korvaa merkkijonon merkki

Seuraava esimerkki näyttää tavan etsiä merkkijonon tietyn merkin sijaintia. Luo C ++ -tiedosto, jolla on seuraava koodi, ja korvaa kyseinen merkki toisella merkillä. Koodissa, find_first_of () -toimintoa on käytetty etsimään jonon tietyn merkin kaikki paikat ja korvaamaan merkit toisella merkillä silmukan avulla. Alkuperäinen merkkijono ja korvattu merkkijono tulostetaan koodin suorittamisen jälkeen.





// Sisällytä tulostuksen tulostamiseen
#sisältää
// Sisällytä, jos käytät kokoa_t
#sisältää

inttärkein()
{
// Alusta merkkijonomuuttuja
tuntia::merkkijonostrData('Tervetuloa LinuxHintiin');
// Tulosta alkuperäinen merkkijono
tuntia::kustannus << 'Alkuperäinen merkkijono on:' +strData<< '' n'';
// Selvitä merkin 'i' kaikki sijainnit
tuntia::koko_tsearchList=strData.find_first_of('minä');
// Toista silmukka korvataksesi kaikki 'i' merkillä '@'
sillä aikaa (searchList!=tuntia::merkkijono::npos)
{
strData[searchList] = '@';
searchList=strData.find_first_of('minä', searchList+1);
}
// Tulosta muokattu merkkijono
tuntia::kustannus << 'Muokattu merkkijono on:' +strData<< '' n'';

palata 0;
}

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan koodin suorittamisen jälkeen.



Esimerkki 2: Hae haettavien merkkien ensimmäisestä sijainnista

Luo C ++ -tiedosto seuraavalla koodilla etsiäksesi monimerkkisen merkkijonon sijainnin ja palauttaa päämerkkijonoa vastaavan merkin ensimmäinen sijainti. Merkkijonotiedot on määritetty merkkijonomuuttujassa, ja ensimmäinen sijainti tallennetaan kokonaislukumuuttujaan. Paikka -arvo tulostetaan koodin suorittamisen jälkeen.

// Sisällytä tulostuksen tulostamiseen
#sisältää

inttärkein()
{
// Alusta merkkijonomuuttuja
tuntia::merkkijonostrData( 'Perus C ++ -ohjelmointi');
// Ilmoita kokonaislukumuuttuja sijainnin tallentamiseksi
intasema;
// Hae merkistä 'C ++'
asema=strData.find_first_of( 'K ++' );
// Tarkista sijainnin arvo
jos (asema> = 0)
{
// Tulosta sijainti, jos jokin merkki löytyy
tuntia::kustannus << 'Hahmo '' <<strData[asema]
<< '' löysi '' << 'paikalla' <<asema<< '' n'';
}

palata 0;
}

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan koodin suorittamisen jälkeen. Tässä hahmo, ' + 'Merkkijonosta', K ++ 'On löytänyt paikalta, 7 pääjonosta, ' Perus C ++ -ohjelmointi ''.

Esimerkki 3: Hae tiettyä merkkiä tietyn sijainnin jälkeen

Luo C ++ -tiedosto seuraavalla koodilla etsiäksesi tietyn merkin tietyn sijainnin jälkeen. Merkkijonotiedot tallennetaan merkkijonomuuttujaan ja tiettyä merkkijonoa etsitään sijainnin jälkeen, 13. Jos päämerkkijonosta on löydetty jokin hakusanan merkki, paikkatieto palautetaan.

// Sisällytä tulostuksen tulostamiseen
#sisältää

inttärkein()
{
// Alusta merkkijonomuuttuja
tuntia::merkkijonostrData= 'Syö elääksesi, älä elä syödäksesi';
// Tulosta alkuperäinen merkkijono
tuntia::kustannus << 'Alkuperäinen merkkijono on:' +strData<< '' n'';
// Tulosta sijainti, josta viimeinen merkki löytyi
tuntia::kustannus<<'Viimeinen haussa löydetty merkki:'
<<strData.find_first_of('klo',13) << '' n'';
palata 0;
}

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan koodin suorittamisen jälkeen. Tässä hahmo, ' kohteeseen 'Merkkijonosta', klo 'On löytänyt paikalta, viisitoista pääjonosta, ' syö elääkseen, ei elä syödäkseen ''.

Esimerkki 4: Hae ensimmäisen vastaavan numeron sijainti

Luo C ++ -tiedosto seuraavalla koodilla etsiäksesi toisen vektoriluettelon ensimmäisen vektoriluettelon jokaisesta numerosta ja palauttaa ensimmäisen vektoriluettelon vastaavan numeron sijainnin. Jos vastaava argumentti löytyy, sijainnin arvo palautetaan; muutoin viesti tulostetaan.

// Sisällytä tulostuksen tulostamiseen
#sisältää
// Sisällytä vektorin hakutiedot
#sisältää
// Sisällytä vektoridatan käyttöä varten
#sisältää

inttärkein()
{
// Ilmoita kaksi vektoriluetteloa
tuntia::vektoriluettelo 1{10,5,65,31,7};
tuntia::vektoriluettelo 2{2,77,5,38,32,55};
// Hae listan1 tiedot listasta2
autolähtö=tuntia::find_first_of(luettelo 1.alkaa(), luettelo 1.loppuun(), luettelo 2.alkaa(), luettelo 2.loppuun());
// Lue vastaavan numeron sijainti
intasema=tuntia::etäisyys(luettelo 1.alkaa(), lähtö);

// Tarkista mikä tahansa luettelon1 määrä ja mikä tahansa luettelon2 määrä
jos (lähtö<luettelo 1.loppuun()) {
tuntia::kustannus << 'Ensimmäinen vastaava numero' <<luettelo 1[asema] << 'löytyi paikasta' <<asema<< '' n'';
}
muu {
tuntia::kustannus << 'Vastaavaa numeroa ei löytynyt. n'';
}
}

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan koodin suorittamisen jälkeen. Ensimmäisen taulukon numeroarvo 5 on toisessa taulukossa ja tämän numeron sijainti on 1.

Johtopäätös

Find_first_of () -toimintoa voidaan käyttää hakuun merkistä tai numerosta eri ohjelmointitarkoituksiin. Tätä toimintoa voidaan käyttää erilaisten etsintäongelmien ratkaisemiseen. Toivon, että C ++ -ohjelmoija pystyy käyttämään tätä toimintoa oikein tämän opetusohjelman lukemisen jälkeen.