Så här använder du funktionen find_first_of () i C ++

How Use Find_first_of Function C



Olika inbyggda funktioner finns i C ++ för att arbeta med strängdata. De find_first_of () funktionen används för att hitta platsen för den första förekomsten av det angivna tecknet. Denna funktion returnerar positionen för den första förekomsten av strängen som kommer att ges som argumentvärde för denna funktion. Olika användningsområden för denna funktion för att söka efter strängen i C ++ har förklarats i denna handledning.

Nödvändig förutsättning

Innan du kontrollerar exemplen på den här självstudien måste du kontrollera att g ++ - kompilatorn är installerad eller inte i systemet. Om du använder Visual Studio Code installerar du nödvändiga tillägg för att kompilera källkoden C ++ för att skapa den körbara koden. Här har programmet Visual Studio Code använts för att kompilera och köra C ++ - koden.







Funktioner i funktionen find_first_of ()

De find_first_of () funktion kan returnera olika typer av variabler baserat på värdet på det första argumentet. Det returnerar sökpositionen för strängen om det första argumentvärdet är en sträng. Det returnerar sökpositionen för teckensträngen om pekaren till en rad tecken ges i det första argumentet. Det kommer att returnera buffertpositionen om värdet på det tredje argumentet anges. Det kommer att returnera teckenposition om ett tecken ges i det första argumentet och det finns i huvudsträngen. Startpositionen för sökningen anges i det andra argumentet för denna funktion. Den olika syntaxen för denna funktion ges nedan.



Syntax

string size_t find_first_of (const string & str, size_t pos = 0) const;
c-sträng size_t find_first_of (const char* s, size_t pos = 0) const;
buffert size_t find_first_of (const char* s, size_t pos, size_t n) const;
tecken size_t find_first_of (char c, size_t pos = 0) const;



Exempel 1: Sök efter och ersätt det särskilda tecknet för en sträng

Följande exempel visar hur du söker efter positionen för det specifika tecknet i en sträng. Skapa en C ++ - fil med följande kod för att ersätta det specifika tecknet med ett annat tecken. I koden, find_first_of () funktion har använts för att söka efter alla positioner för ett visst tecken i en sträng och ersätta tecknen med ett annat tecken med hjälp av slingan. Den ursprungliga strängen och den ersatta strängen skrivs ut efter att koden har körts.





// Inkludera för utskrift av utdata
#omfatta
// Inkludera för att använda size_t
#omfatta

inthuvud()
{
// Initiera en strängvariabel
timmar::strängstrData('Välkommen till LinuxHint');
// Skriv ut originalsträngen
timmar::kosta << 'Den ursprungliga strängen är:' +strData<< ' n';
// Ta reda på all position för karaktären 'i'
timmar::storlek_tsearchList=strData.hitta_första_av('jag');
// Iterera slingan för att ersätta alla 'i' med '@'
medan (searchList!=timmar::sträng::npos)
{
strData[searchList] = '@';
searchList=strData.hitta_första_av('jag', searchList+1);
}
// Skriv ut den modifierade strängen
timmar::kosta << 'Den modifierade strängen är:' +strData<< ' n';

lämna tillbaka 0;
}

Produktion:

Följande utdata visas efter att koden ovan har körts.



Exempel 2: Sök efter den första positionen för de sökande tecknen

Skapa en C ++ - fil med följande kod för att söka efter en sträng med flera tecken och returnera den första positionen för tecknet som matchar med huvudsträngen. En strängdata har tilldelats i en strängvariabel, och den första positionen lagras i en heltalsvariabel. Positionsvärdet skrivs ut när koden har körts.

// Inkludera för utskrift av utdata
#omfatta

inthuvud()
{
// Initiera strängvariabeln
timmar::strängstrData( 'Grundläggande C ++ programmering');
// Ange intergervariabeln för att lagra positionen
intplacera;
// Sök efter tecknet 'C ++'
placera=strData.hitta_första_av( 'K ++' );
// Kontrollera positionsvärdet
om (placera> = 0)
{
// Skriv ut positionen om något tecken hittades
timmar::kosta << 'Karaktären '' <<strData[placera]
<< '' har funnit' << 'på positionen' <<placera<< ' n';
}

lämna tillbaka 0;
}

Produktion:

Följande utdata visas efter att koden ovan har körts. Här är karaktären, ' + 'Av strängen,' K ++ Har hittat på positionen, 7 av huvudsträngen, ' Grundläggande C ++ programmering '.

Exempel 3: Sök efter ett visst tecken efter den specifika positionen

Skapa en C ++ - fil med följande kod för att söka efter ett visst tecken efter den specifika positionen. En strängdata lagras i strängvariabeln och en särskild sträng söks efter positionen, 13. Om något tecken i söksträngen har hittats i huvudsträngen, returneras ett positionsvärde.

// Inkludera för utskrift av utdata
#omfatta

inthuvud()
{
// Initiera en strängvariabel
timmar::strängstrData= 'äta för att leva, inte lev för att äta';
// Skriv ut originalsträngen
timmar::kosta << 'Den ursprungliga strängen är:' +strData<< ' n';
// Skriv ut positionen där det sista tecknet hittades
timmar::kosta<<'Det sista matchande tecknet som hittades på positionen:'
<<strData.hitta_första_av('på',13) << ' n';
lämna tillbaka 0;
}

Produktion:

Följande utdata visas efter att koden ovan har körts. Här är karaktären, ' till 'Av strängen,' Har hittat på positionen, femton av huvudsträngen, ' äta för att leva, inte för att äta '.

Exempel 4: Sök efter positionen för det första matchande numret

Skapa en C ++ - fil med följande kod för att söka efter varje nummer i den första vektorlistan i den andra vektorlistan och returnera positionen för matchande nummer för den första vektorgruppen. Om ett matchande argument hittas returneras positionsvärdet; annars skrivs ett meddelande ut.

// Inkludera för utskrift av utdata
#omfatta
// Inkludera för att söka data i vektorn
#omfatta
// Inkludera för användning av vektordata
#omfatta

inthuvud()
{
// Deklarera två vektor lista
timmar::vektorlista 1{10,5,65,31,7};
timmar::vektorlista2{2,77,5,38,32,55};
// Sök data i list1 i listan2
bilproduktion=timmar::hitta_första_av(lista 1.Börja(), lista1.slutet(), lista2.Börja(), lista2.slutet());
// Läs positionen för matchande nummer
intplacera=timmar::distans(lista 1.Börja(), utmatning);

// Kontrollera valfritt antal list1 -matchningar med valfritt antal list2
om (produktion<lista 1.slutet()) {
timmar::kosta << 'Det första matchande numret' <<lista 1[placera] << 'hittad på position' <<placera<< ' n';
}
annan {
timmar::kosta << 'Inget matchande nummer hittades. n';
}
}

Produktion:

Följande utdata visas efter att koden ovan har körts. Talvärdet, 5 i den första matrisen, finns i den andra matrisen och positionen för detta nummer är 1.

Slutsats

Funktionen find_first_of () kan användas för att söka efter ett tecken eller nummer för olika programmeringsändamål. Denna funktion kan användas för att lösa de olika sökproblemen. Jag hoppas att C ++ programmeraren kan använda den här funktionen ordentligt efter att ha läst denna handledning.