C ++ wymień wymień

C ++ wymień wymień
C ++ Ciąg Zastąp się, aby zlokalizować określony pod strat w ciągu docelowego ciągu, a następnie zastąpienie go. Ciąg można utworzyć na dwa główne sposoby: używając wskaźnika stałego znaku (tablica char) lub tworzenie go z klasy ciągów. Klasa ciągów ma funkcję członka zamiennika (). To jest lokalizacja i wymiana. Lokalizacja i wymiana odbywa się na instanowane obiekty ciągów, a nie ciągi utworzone za pomocą wskaźnika o stałym znaku.

Obiekt ciągu jest strukturą danych, a jego głównym składnikiem jest lista. Każda komórka tej listy ma charakter. Całkowita sekwencja znaków stanowi dosłowny ciąg. Do każdej pozycji znaku można uzyskać indeks lub iterator. Liczenie indeksu zaczyna się od zera. Iterator jest opracowanym wskaźnikiem.

Klasa C+ String ma różne warianty funkcji członka Replay (). Taki zestaw funkcji jest wywoływany przez funkcje przeciążone. W tym artykule wyjaśniono, jak korzystać z różnych przeciążonych funkcji wymiennych ().

Dla wszystkich przykładów zostanie użyty następujący ciąg docelowy:

„Nasza planeta ma 24 godziny na dobę."

Element (znak) obiektu ciągów można uzyskać albo przez odniesienie lub iterator. C ++ 20 faktycznie ma 14 przeciążonych funkcji wymiennych () dla klasy ciągów. Z siedmioma z tych funkcji elementy są dostępne przez odniesienie, podczas gdy z pozostałymi siedmioma elementami są dostępne przez iterator.

Funkcje siedmioosobowe, dla których elementy są dostępne przez odniesienie, zostaną wyjaśnione w tym artykule. Wyjaśniono tylko jeden dla pozostałych siedmiu, dla iteratorów. Z wiedząc o tym, do którego iterator uzyskuje dostęp do elementów, czytelnik może wywnioskować wyjaśnienie pozostałych sześciu.

Basic_String & Replain (size_type POS1, size_type n1, const t & t)

Ta funkcja członka trafia do indeksu w POS1, a następnie mierzy substrowanie długości N1 (począwszy od POS1) i zastępuje ją kolejnym niezależnym substancją tablicy książek księgowych. Substrowanie ma zostać wymienione, a podprzestrzeni nie musi mieć tej samej długości. Poniższy program ilustruje to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String Target = String („Nasza planeta ma 24 godziny na dobę.");
Char Reprezentacja [] = „Solar Home”;
String Result = Target.Wymień (4, 6, wymiana);
Cout << result << endl;
powrót 0;

Wyjście to:

Nasz dom słoneczny ma 24 godziny na dobę.

Zwracany ciąg jest obiektem ciągu. Aby użyć funkcji członka zastępowania () klasy ciągów, biblioteka ciągów musi być zawarta w programie (z dyrektywą).

Uwaga: Cały kod ciągu tego artykułu znajduje się w głównej funkcji C ++.

Basic_String & Replain (size_type POS, size_type n1, const wykres* s)

Ta funkcja członka jest prawie taka sama jak powyżej. Przechodzi do indeksu w POS, mierzy sub-string długości N1 (począwszy od POS) i zastępuje go kolejnym niezależnym sub-string. Zastąsione substrowanie i wymiana substringów nie musi mieć tej samej długości. Poniższy program ilustruje to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String Target = String („Nasza planeta ma 24 godziny na dobę.");
const char* zamiennik = "solar home";
String Result = Target.Wymień (4, 6, wymiana);
Cout << result << endl;
powrót 0;

Wyjście to:

Nasz dom słoneczny ma 24 godziny na dobę.

Basic_String & Replain (size_type POS1, size_type n1, const basic_string & str)

Ta funkcja członka jest podobna do powyższego. Jednak zastępujący ciąg jest obiektem ciągu, utworzonym z klasy ciągów. Poniższy program ilustruje to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String Target = String („Nasza planeta ma 24 godziny na dobę.");
String Repepation = String („Solar Home”);
String Result = Target.Wymień (4, 6, wymiana);
Cout << result << endl;
powrót 0;

Wyjście to:

Nasz dom słoneczny ma 24 godziny na dobę.

Basic_String & Replain (size_type POS, size_type n1, size_type n2, wykres c)

Ta funkcja członka jest podobna do powyższego. Jednak ciąg zastępujący jest ten sam znak, powtarzany N2 razy. Zauważ, że istnieją cztery parametry dla tej funkcji. Poniższy program ilustruje jego użycie:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String Target = String („Nasza planeta ma 24 godziny na dobę.");
String Result = Target.zamień (4, 6, 3, „e”);
Cout << result << endl;
powrót 0;

Wyjście to:

Nasz EEE ma 24 godziny na dobę.

„Planet” został zastąpiony trzema E (dla Ziemi).

Basic_String & Replain (size_type POS, size_type n1, const wykres* s, size_type n2)

Ta funkcja członka jest podobna do powyższego. Jednak ciąg zastępczy jest stałym wskaźnikiem do Chars, którego pierwsze znaki N2 są używane do wymiany. Poniższy program ilustruje to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String Target = String („Nasza planeta ma 24 godziny na dobę.");
const char* zamiennik = „świat Ziemi”;
String Result = Target.Wymień (4, 6, zamiennik, 5);
Cout << result << endl;
powrót 0;

Wyjście to:

Nasza Ziemia ma 24 godziny na dobę.

Basic_String & Replain (size_type POS1, size_type n1, const t & t, size_type POS2, size_type n2 = npos)

Ta funkcja członka jest podobna do powyższego. Jednak zastępujący ciąg to tablica szyn, których znaki N2 są używane do wymiany, zaczynając od pozycji zastępującego ciągu, POS2, który niekoniecznie jest zerowy. Jeśli czwarty argument tej funkcji jest nieobecny, liczba znaków wymiany będzie od POS2 do końca szeregu książek; W przeciwnym razie będą to znaki N2 z POS2. Poniższy program ilustruje to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String Target = String („Nasza planeta ma 24 godziny na dobę.");
Char Reprezentacja [] = „The Earth World”;
String Result = Target.Wymień (4, 6, zamiennik, 4, 5);
Cout << result << endl;
powrót 0;

Wyjście to:

Nasza Ziemia ma 24 godziny na dobę.

Basic_String & Replac

Ta funkcja członka jest podobna do powyższego. Jednak zastępujący ciąg jest obiektem ciągu, utworzonym z klasy ciągów. Poniższy kod to ilustruje:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String Target = String („Nasza planeta ma 24 godziny na dobę.");
String zastąpienie = String („The Earth World”);
String Result = Target.Wymień (4, 6, zamiennik, 4, 5);
Cout << result << endl;
powrót 0;

Wyjście to:

Nasza Ziemia ma 24 godziny na dobę.

Basic_String & Replain (const_iterator i1, const_iterator i2, const basic_string & str)

Ta funkcja członka trafia do elementu (znaku) ciągu docelowego, wskazanego przez iterator, i1; Następnie rozważa postacie do jednego wskazanego przez iteratora i2. Ten zakres ma zostać zastąpiony wszystkimi znakami obiektu String, utworzone z klasy. Poniższy program ilustruje to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String Target = String („Nasza planeta ma 24 godziny na dobę.");
String zastąpienie = String („World Solar World”);
String :: Iterator it1 = cel.zaczynać();
it1 = it1 + 4;
String :: Iterator It2 = cel.zaczynać();
it2 = it2 + 10;
String Result = Target.zamień (IT1, IT2, wymiana);
Cout << result << endl;
powrót 0;

Wyjście to:

Nasz świat słoneczny ma 24 godziny na dobę.

Ostatni element zakresu, wskazany przez drugiego iteratora, nie wziął udziału w wymianie; To był tylko górny ogranicznik.

Użyto dwóch iteratorów, IT1 i IT2. Każdy został uzyskany z funkcji elementu początkowego () klasy ciągu. Funkcja członka stear () zwraca iterator, który wskazuje na pierwszy element obiektu ciągów. Aby uczynić to 1 na „p” „planety” przy indeksie 4 docelowego ciągu, musiało zostać zwiększone o 4. Aby to było wskażowe „tuż po„ planecie ”w indeksie 10 docelowego ciągu, IT2 musiało zostać zwiększone o 10.

Wniosek

Jest to sub-string listy obiektu ciągów, utworzona z klasy ciągów, która jest rozważana do wymiany. Podekstring ciągu zadeklarowanego jako tablica książek lub stałego wskaźnika do zwariów nie jest brany pod uwagę w celu wymiany. Zastępujący ciąg to kolejny niezależny ciąg. Cały dosłowność ciągów zastępującej sznurka może wykonać wymianę lub jego część może nadal dokonać wymiany. Klasa ciągów C ++ 20 ma 14 przeciążonych funkcji członka dla wymiany, z których 8 zostało wyjaśnione powyżej.