Język C++
basic_string::find
[metoda] Wyszukuje pierwszego wystąpienia danego łańcucha znaków.Składnia
#include <string>
namespace std
{
template <
class TypZnaku,
class CechowanieZnakow = char_traits < TypZnaku >,
class Alokator = allocator < TypZnaku >
>
class basic_string
{
private:
typedef basic_string < TypZnaku, CechowanieZnakow, Alokator > UtworzonaKlasaT;
public:
size_type find( const UtworzonaKlasaT & _str, size_type _pos = 0 ) const noexcept;
size_type find( const TypZnaku * _s, size_type _pos = 0 ) const;
size_type find( const TypZnaku * _s, size_type _pos, size_type _n ) const;
size_type find( TypZnaku _c, size_type _pos = 0 ) const noexcept;
};
}
Argumenty
Zwracana wartość
Pozycja pierwszego dopasowania wzorca. Jeżeli owy nie został znaleziony, funkcja zwróci
npos.
Opis szczegółowy
Metoda (1) wyszukuje pierwsze wystąpienie wzorca określonego innym obiektem tego samego typu od pozycji
_pos w aktualnym obiekcie. Wersja (2) czyni dokładnie to samo, z tą różnicą, iż wzorzec jest określony poprzez wskaźnik do tablicy znaków. Metoda (3) jest rozszerzoną metodą (2) o możliwość podania długości wzorca. Ostatnia wersja (4) wyszukuje pojedynczy znak w aktualnym obiekcie.
Rzucane wyjątki
Jeżeli
_s nie wskazuje na wystarczająco dużą tablicę (
_n jest za duże), to zachowanie jest niezdefiniowane.
Przykład
#include <iostream>
#include <string>
int main()
{
MojString str( "Na stole ziemniak jeden, a pod stolem ziemniakow para." );
MojString str2( "ziemniak" );
MojString::size_type found = str.find( str2 );
if( found != MojString::npos )
std::cout << "pierwszy 'ziemniak' znaleziony na pozycji: " << found << '\n';
found = str.find( "ziemniaki sa male", found + 1, 7 );
if( found != MojString::npos )
std::cout << "drugi 'ziemniak' znaleziony na pozycji: " << found << '\n';
found = str.find( "stol" );
if( found != MojString::npos )
std::cout << "znaleziono takze 'stol' na pozycji: " << found << '\n';
found = str.find( '.' );
if( found != MojString::npos )
std::cout << "Kropka na pozycji: " << found << '\n';
return 0;
}
Standardowe wyjście programu:
pierwszy 'ziemniak' znaleziony na pozycji: 9
drugi 'ziemniak' znaleziony na pozycji: 38
znaleziono takze 'stol' na pozycji: 3
Kropka na pozycji: 53
Zagadnienia powiązane
rfind | Wyszukuje ostatniego wystąpienia danego łańcucha znaków. (metoda) |
---|
find_first_not_of | Wyszukuje pierwsze wystąpienia znaku spoza danej bazy znaków. (metoda) |
---|
find_first_of | Wyszukuje pierwsze wystąpienie znaku z danej bazy znaków. (metoda) |
---|
find_last_not_of | Wyszukuje ostatnie wystąpienie znaku spoza danej bazy znaków. (metoda) |
---|
find_last_of | Wyszukuje ostatnie wystąpienie znaku z danej bazy znaków. (metoda) |
---|
replace | Zamienia część znaków na inne. (metoda) |
---|
substr | Zwraca podciąg łańcucha znaków. (metoda) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.