De functie find_first_of() gebruiken in C++

How Use Find_first_of Function C



Er zijn verschillende ingebouwde functies in C++ om met de stringgegevens te werken. De find_first_of() functie wordt gebruikt om de locatie van het eerste voorkomen van het opgegeven teken te vinden. Deze functie retourneert de positie van het eerste voorkomen van de tekenreeks die wordt gegeven als de argumentwaarde van deze functie. Verschillende toepassingen van deze functie voor het zoeken naar de string in C++ zijn uitgelegd in deze tutorial.

Voorwaarde

Voordat u de voorbeelden van deze tutorial bekijkt, moet u controleren of de g++-compiler is geïnstalleerd of niet in het systeem. Als u Visual Studio Code gebruikt, installeer dan de benodigde extensies om de C++-broncode te compileren om de uitvoerbare code te maken. Hier is de toepassing Visual Studio Code gebruikt om de C++-code te compileren en uit te voeren.







Functies van de functie find_first_of()

De find_first_of() functie kan verschillende soorten variabelen retourneren op basis van de waarde van het eerste argument. Het retourneert de zoekpositie van de tekenreeks als de eerste argumentwaarde een tekenreeks is. Het retourneert de zoekpositie van de tekenreeks als de aanwijzer naar een reeks tekens in het eerste argument wordt gegeven. Het zal de bufferpositie teruggeven als de waarde van het derde argument wordt gegeven. Het zal de karakterpositie teruggeven als een karakter is gegeven in het eerste argument en het bestaat in de hoofdstring. De startpositie van de zoekopdracht wordt ingesteld in het tweede argument van deze functie. De verschillende syntaxis van deze functie wordt hieronder gegeven.



Syntaxis

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



Voorbeeld 1: Zoek en vervang het specifieke teken van een tekenreeks

Het volgende voorbeeld toont de manier om de positie van het specifieke teken in een string te zoeken. Maak een C++-bestand met de volgende code om het specifieke teken te vervangen door een ander teken. In de code, de find_first_of() functie is gebruikt om alle posities van een bepaald teken in een tekenreeks te zoeken en de tekens te vervangen door een ander teken met behulp van de lus. De originele string en de vervangen string worden afgedrukt na het uitvoeren van de code.





//Opnemen voor het afdrukken van de uitvoer
#erbij betrekken
//Opnemen voor het gebruik van size_t
#erbij betrekken

inthoofd()
{
// Initialiseer een stringvariabele
uur::snaarstrData('Welkom bij LinuxHint');
// Print de originele string
uur::kosten << 'De originele string is: ' +strData<< 'N';
// Ontdek alle posities van het karakter 'i'
uur::size_tzoeklijst=strData.find_first_of('l');
// Herhaal de lus om alle 'i' te vervangen door '@'
terwijl (zoeklijst!=uur::snaar::npos)
{
strData[zoeklijst] = '@';
zoeklijst=strData.find_first_of('l',zoeklijst+1);
}
// Druk de gewijzigde string af
uur::kosten << 'De gewijzigde string is: ' +strData<< 'N';

opbrengst 0;
}

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande code.



Voorbeeld 2: Zoek de eerste positie van de zoekende tekens

Maak een C++-bestand met de volgende code om de positie van een tekenreeks van meerdere tekens te zoeken en de eerste positie van het teken dat overeenkomt met de hoofdtekenreeks te retourneren. Een string data is toegewezen in een string variabele, en de eerste positie is opgeslagen in een integer variabele. De positiewaarde wordt afgedrukt na het uitvoeren van de code.

//Opnemen voor het afdrukken van de uitvoer
#erbij betrekken

inthoofd()
{
// Initialiseer de stringvariabele
uur::snaarstrData( 'Basis C++ Programmeren');
// Declareer de interger-variabele om de positie op te slaan
intpositie;
// Zoek het teken 'C++'
positie=strData.find_first_of( 'K++' );
// Controleer de positiewaarde
indien (positie> = 0)
{
// Druk de positie af als het karakter gevonden is
uur::kosten << 'Het personage '' <<strData[positie]
<< '' heeft gevonden' << 'op de stand' <<positie<< 'N';
}

opbrengst 0;
}

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande code. Hier, het personage, ' + ’ van de snaar, ‘ K ++ ’ heeft gevonden op de positie, 7 van de hoofdsnaar, ' Basis C++-programmering '.

Voorbeeld 3: Zoek een bepaald teken na de bepaalde positie

Maak een C++-bestand met de volgende code om een ​​bepaald teken na de bepaalde positie te zoeken. Een tekenreeksgegevens worden opgeslagen in de tekenreeksvariabele en een bepaalde tekenreeks wordt gezocht na de positie, 13. Als er een teken van de zoekreeks is gevonden in de hoofdtekenreeks, wordt een positiewaarde geretourneerd.

//Opnemen voor het afdrukken van de uitvoer
#erbij betrekken

inthoofd()
{
// Initialiseer een stringvariabele
uur::snaarstrData= 'eet om te leven, leef niet om te eten';
// Print de originele string
uur::kosten << 'De originele string is: ' +strData<< 'N';
// Druk de positie af waar het laatste teken is gevonden
uur::kosten<<'Het laatste overeenkomende teken gevonden op de positie :'
<<strData.find_first_of('Bij',13) << 'N';
opbrengst 0;
}

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande code. Hier, het personage, ' tot ’ van de snaar, ‘ Bij ’ heeft gevonden op de positie, vijftien van de hoofdsnaar, ' eet om te leven, leef niet om te eten '.

Voorbeeld 4: Zoek de positie van het eerste overeenkomende nummer

Maak een C++-bestand met de volgende code om elk nummer van de eerste vectorlijst in de tweede vectorlijst te doorzoeken en de positie van het overeenkomende nummer van de eerste vectorlijst te retourneren. Als een overeenkomend argument wordt gevonden, wordt de positiewaarde geretourneerd; anders wordt er een bericht afgedrukt.

//Opnemen voor het afdrukken van de uitvoer
#erbij betrekken
//Include voor het zoeken naar gegevens in de vector
#erbij betrekken
//Opnemen voor het gebruik van vectorgegevens
#erbij betrekken

inthoofd()
{
//Declareer twee vectorlijsten
uur::vectorlijst1{10,5,65,31,7};
uur::vectorlijst2{2,77,5,38,32,55};
//Zoek de gegevens van lijst1 in de lijst2
autouitvoer=uur::find_first_of(lijst1.beginnen(), lijst1.einde(), lijst2.beginnen(), lijst2.einde());
// Lees de positie van het overeenkomende nummer
intpositie=uur::afstand(lijst1.beginnen(), uitvoer);

//Controleer een willekeurig aantal list1 match met een willekeurig aantal list2
indien (uitvoer<lijst1.einde()) {
uur::kosten << 'Het eerste overeenkomende nummer' <<lijst1[positie] << ' gevonden op positie ' <<positie<< 'N';
}
anders {
uur::kosten << 'Geen overeenkomend nummer gevonden.N';
}
}

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande code. De getallenwaarde, 5 van de eerste array, bestaat in de tweede array en de positie van dit getal is 1.

Conclusie

De functie find_first_of() kan worden gebruikt om een ​​teken of nummer te zoeken voor verschillende programmeerdoeleinden. Deze functie kan worden gebruikt voor het oplossen van de verschillende zoekproblemen. Ik hoop dat de C++ programmeur deze functie goed kan gebruiken na het lezen van deze tutorial.