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.