Jak używać funkcji Find_first_Of w C ++

Jak używać funkcji Find_first_Of w C ++
W C ++ istnieją różne wbudowane funkcje, aby pracować z danymi stringowymi. find_first_of () Funkcja służy do znalezienia lokalizacji pierwszego wystąpienia określonego znaku. Ta funkcja zwraca położenie pierwszego wystąpienia ciągu, które zostanie podane jako wartość argumentu tej funkcji. Różne zastosowania tej funkcji do wyszukiwania łańcucha w C ++ zostały wyjaśnione w tym samouczku.

Warunek wstępny

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

Funkcje funkcji Find_first_of ()

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 pierwsza wartość argumentu jest ciągiem. Zwróci pozycję wyszukiwania ciągu znaku, jeśli wskaźnik do tablicy znaków zostanie podany w pierwszym argumencie. Zwróci pozycję bufora, jeśli podano wartość trzeciego argumentu. Zwróci pozycję znaku, jeśli postać zostanie podana w pierwszym argumencie i istnieje w głównym ciągu. Położenie początkowe wyszukiwania jest ustawione w drugim argumencie tej funkcji. Inna składnia tej funkcji podano poniżej.

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 rozmiaru_t Find_first_of (char c, size_t pos = 0) const;

Przykład 1: Wyszukaj i wymień konkretny znak ciągu

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

// dołącz do drukowania wyjścia
#włączać
// dołącz do używania size_t
#włączać
int main ()

// zainicjuj zmienną string
STD :: String strdata („Witamy w Linuxhint”);
// Wydrukuj oryginalny ciąg
STD :: Cout << "The original string is: " + strData << '\n';
// znajdź całą pozycję postaci „I”
std :: size_t wyszukiwarka = strdata.find_first_of („i”);
// iteruj pętlę, aby zastąpić wszystkie „ja” przez „@”
When (Lista wyszukiwania!= std :: String :: npos)

strData [SearchList] = '@';
Searchlist = strData.find_first_of („i”, SearchList+1);

// Wydrukuj zmodyfikowany ciąg
STD :: Cout << "The modified string is: " + strData << '\n';
powrót 0;

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego kodu.

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

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

// dołącz do drukowania wyjścia
#włączać
int main ()

// zainicjuj zmienną ciągów
std :: String strdata („Basic C ++ Programming”);
// zadeklaruj zmienną międzygólną do przechowywania pozycji
pozycja int;
// Wyszukaj znak „C ++”
Pozycja = strdata.find_first_of („k ++”);
// Sprawdź wartość pozycji
if (pozycja> = 0)

// Wydrukuj pozycję, jeśli znaleziono jakikolwiek znak
STD :: Cout << "The character '" << strData[position]
<< "' has found" << " at the position " << position << '\n';

powrót 0;

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego kodu. Tutaj postać ”+„String”K++„Znalazł się w pozycji, 7 głównego ciągu, 'Podstawowe programowanie C ++'.

Przykład 3: Wyszukaj konkretny znak po konkretnej pozycji

Utwórz plik C ++ z następującym kodem, aby przeszukać konkretny znak po konkretnej pozycji. Dane ciągu są przechowywane w zmiennej ciągu, a konkretny ciąg jest przeszukiwany po pozycji 13. Jeśli w ciągu głównego ciągu znaleziono jakikolwiek znak sznurka wyszukiwania, zostanie zwrócona wartość pozycji.

// dołącz do drukowania wyjścia
#włączać
int main ()

// zainicjuj zmienną string
STD :: String strdata = "jedz, aby żyć, nie żyć do jedzenia";
// Wydrukuj oryginalny ciąg
STD :: Cout << "The original string is: " + strData << '\n';
// Wydrukuj pozycję, w której znaleziono ostatnią postać
STD :: Cout<<"The last matching character found at the position :"
<< strData.find_first_of("at",13) << '\n';
powrót 0;

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego kodu. Tutaj postać ”A„String”Na„Znalazł się w pozycji, 15 głównego ciągu, 'jedz by żyć, nie żyj by jeść'.

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

Utwórz plik C ++ z następującym kodem, aby wyszukać każdą liczbę pierwszej listy wektorów na drugiej liście wektorów i zwróć pozycję dopasowanej liczby pierwszej listy wektorów. Jeśli zostanie znaleziony pasujący argument, wartość pozycji zostanie zwrócona; W przeciwnym razie wiadomość zostanie wydrukowana.

// dołącz do drukowania wyjścia
#włączać
// Dołącz do wyszukiwania danych w wektorze
#włączać
// dołącz do używania danych wektorowych
#włączać
int main ()

// Deklaruj dwie listy wektorów
STD :: wektor List1 10, 5, 65, 31, 7;
STD :: wektor List2 2, 77, 5, 38, 32, 55;
// przeszukaj dane z List1 na liście2
automatyczne wyjście = std :: Find_first_of (lista1.zaczynać(),
List1.end (), lista 2.początek (), lista 2.koniec());
// Przeczytaj pozycję pasującego numeru
int pozycja = std :: odległość (lista 1.początek (), wyjście);
// Sprawdź dowolną liczbę listy 1 dopasowanie do dowolnej liczby listy2
if (wyjście < list1.end())
STD :: Cout << "The first matching number " <<
List1 [Pozycja] << " found at position " <<
pozycja << "\n";

w przeciwnym razie
STD :: Cout << "No matching number found.\n";

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego kodu. Wartość liczby, 5 pierwszej tablicy, istnieje w drugiej tablicy, a pozycja tej liczby wynosi 1.

Wniosek

Do wyszukiwania znaku lub liczby w celach programowania można użyć funkcji FINK_FIRST_OF (. Ta funkcja może być używana do rozwiązywania różnych problemów z wyszukiwaniem. Mam nadzieję, że programista C ++ może poprawnie użyć tej funkcji po przeczytaniu tego samouczka.