Jak używać funkcji find_first_of() w C++

How Use Find_first_of Function C



W C++ istnieją różne wbudowane funkcje do pracy z danymi ciągu. ten find_first_of() funkcja służy do znalezienia lokalizacji pierwszego wystąpienia określonego znaku. Ta funkcja zwraca pozycję pierwszego wystąpienia ciągu, który zostanie podany jako wartość argumentu tej funkcji. Różne zastosowania tej funkcji do wyszukiwania ciągu znaków w C++ zostały wyjaśnione w tym samouczku.

Warunek wstępny

Przed sprawdzeniem przykładów z tego samouczka, musisz sprawdzić, czy kompilator g++ jest zainstalowany w systemie. Jeśli używasz Visual Studio Code, zainstaluj niezbędne rozszerzenia, aby skompilować kod źródłowy C++ w celu utworzenia kodu wykonywalnego. Tutaj aplikacja Visual Studio Code została użyta do kompilacji i wykonania kodu C++.







Funkcje funkcji find_first_of()

ten find_first_of() funkcja może zwracać różne typy zmiennych na podstawie wartości pierwszego argumentu. Zwróci pozycję wyszukiwania ciągu, jeśli wartość pierwszego argumentu jest ciągiem. Zwróci pozycję wyszukiwania ciągu znaków, jeśli w pierwszym argumencie podano wskaźnik do tablicy znaków. Zwróci pozycję bufora, jeśli zostanie podana wartość trzeciego argumentu. Zwróci pozycję znaku, jeśli znak jest podany w pierwszym argumencie i istnieje w głównym łańcuchu. Pozycja początkowa wyszukiwania jest ustawiona w drugim argumencie tej funkcji. Poniżej podano inną składnię tej funkcji.



Składnia

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



Przykład 1: Wyszukaj i zastąp konkretny znak ciągu

Poniższy przykład pokazuje sposób wyszukiwania pozycji określonego znaku w ciągu. Utwórz plik C++ z następującym kodem, aby zastąpić określony znak innym znakiem. W kodzie find_first_of() Funkcja została użyta do przeszukania wszystkich pozycji określonego znaku w ciągu i zamiany znaków na inny znak za pomocą pętli. Oryginalny ciąg i zastąpiony ciąg zostaną wydrukowane po wykonaniu kodu.





//Uwzględnij do wydrukowania danych wyjściowych
#włączać
//Dołącz do używania size_t
#włączać

intGłówny()
{
//Zainicjuj zmienną łańcuchową
godziny::strunowystrData('Witamy w LinuxHint');
//Wydrukuj oryginalny ciąg
godziny::koszt << 'Oryginalny ciąg to: ' +strData<< ' ';
//Znajdź wszystkie pozycje znaku „i”
godziny::rozmiar_tLista wyszukiwania=strData.find_first_of('i');
//Iteruj pętlę, aby zastąpić wszystkie „i” znakiem „@”
podczas (Lista wyszukiwania!=godziny::strunowy::npos)
{
strData[Lista wyszukiwania] = „@”;
Lista wyszukiwania=strData.find_first_of('i',Lista wyszukiwania+1);
}
//Wydrukuj zmodyfikowany ciąg
godziny::koszt << 'Zmodyfikowany ciąg to: ' +strData<< ' ';

powrót 0;
}

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego kodu.



Przykład 2: Wyszukaj pierwszą pozycję szukanych znaków

Utwórz plik C++ z następującym kodem, aby przeszukać pozycję ciągu wielu znaków i zwrócić pierwszą pozycję znaku, która pasuje do głównego ciągu. Dane łańcuchowe zostały przypisane w zmiennej łańcuchowej, a pierwsza pozycja jest przechowywana w zmiennej całkowitej. Wartość pozycji zostanie wydrukowana po wykonaniu kodu.

//Uwzględnij do wydrukowania danych wyjściowych
#włączać

intGłówny()
{
// Zainicjuj zmienną łańcuchową
godziny::strunowystrData( 'Podstawowe programowanie C++');
// Zadeklaruj zmienną całkowitą do przechowywania pozycji
intpozycja;
// Wyszukaj znak 'C++'
pozycja=strData.find_first_of( „K++” );
// Sprawdź wartość pozycji
Jeśli (pozycja> = 0)
{
// Wydrukuj pozycję, jeśli znaleziono dowolny znak
godziny::koszt << 'Charakter '' <<strData[pozycja]
<< '' znalazł' << ' na pozycji ' <<pozycja<< ' ';
}

powrót 0;
}

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego kodu. Tutaj postać „ + ’ ciągu, ‘ K++ ’ znalazł się na stanowisku, 7 głównego ciągu, ‘ Podstawowe programowanie w C++ „.

Przykład 3: Wyszukaj określony znak po określonej pozycji

Utwórz plik C++ z następującym kodem, aby wyszukać określony znak po określonej pozycji. Dane ciągu są przechowywane w zmiennej ciągu, a określony ciąg jest przeszukiwany po pozycji 13. Jeżeli w ciągu głównym zostanie znaleziony dowolny znak szukanego ciągu, zostanie zwrócona wartość pozycji.

//Uwzględnij do wydrukowania danych wyjściowych
#włączać

intGłówny()
{
//Zainicjuj zmienną łańcuchową
godziny::strunowystrData= 'jedz by żyć, nie żyj by jeść';
//Wydrukuj oryginalny ciąg
godziny::koszt << 'Oryginalny ciąg to: ' +strData<< ' ';
//Wydrukuj pozycję, w której znaleziono ostatni znak
godziny::koszt<<'Ostatni pasujący znak znaleziony na pozycji:'
<<strData.find_first_of('w',13) << ' ';
powrót 0;
}

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego kodu. Tutaj postać „ do ’ ciągu, ‘ w ’ znalazł się na stanowisku, piętnaście głównego ciągu, ‘ jedz by żyć, nie żyj by jeść „.

Przykład 4: Wyszukaj pozycję pierwszego pasującego numeru

Utwórz plik C++ z następującym kodem, aby przeszukać każdy numer pierwszej listy wektorów na drugiej liście wektorów i zwrócić pozycję pasującego numeru z pierwszej listy wektorów. Jeśli zostanie znaleziony pasujący argument, zostanie zwrócona wartość pozycji; w przeciwnym razie zostanie wydrukowana wiadomość.

//Uwzględnij do wydrukowania danych wyjściowych
#włączać
//Uwzględnij do wyszukiwania danych w wektorze
#włączać
//Uwzględnij do korzystania z danych wektorowych
#włączać

intGłówny()
{
//Zadeklaruj listę dwóch wektorów
godziny::wektorlista1{10,5,65,31,7};
godziny::wektorlista2{2,77,5,38,32,55};
//Przeszukaj dane z listy 1 do listy 2
automatycznywyjście=godziny::find_first_of(lista1.rozpocząć(), lista1.kończyć się(), lista2.rozpocząć(), lista2.kończyć się());
// Odczytaj pozycję pasującego numeru
intpozycja=godziny::dystans(lista1.rozpocząć(), wyjście);

//Sprawdź, czy dowolna liczba z listy 1 pasuje do dowolnej liczby z listy 2
Jeśli (wyjście<lista1.kończyć się()) {
godziny::koszt << „Pierwszy pasujący numer” <<lista1[pozycja] << ' znaleziony na pozycji ' <<pozycja<< ' ';
}
w przeciwnym razie {
godziny::koszt << 'Nie znaleziono pasującego numeru. ';
}
}

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego kodu. Wartość liczbowa 5 z pierwszej tablicy istnieje w drugiej tablicy, a pozycja tej liczby to 1.

Wniosek

Funkcja find_first_of() może być używana do wyszukiwania znaku lub liczby w różnych celach programistycznych. Ta funkcja może być używana do rozwiązywania różnych problemów związanych z wyszukiwaniem. Mam nadzieję, że programista C++ będzie w stanie prawidłowo używać tej funkcji po przeczytaniu tego samouczka.