String C ++ Sostituire

String C ++ Sostituire
String C ++ Sostituire si occupa di individuare una particolare sotto-stringa in una stringa di destinazione e quindi sostituire. Una stringa può essere creata in due modi principali: usando un puntatore di carattere costante (Array Char) o istanziando dalla classe String. La classe String ha una funzione membro sostituito (). Questo fa la localizzazione e la sostituzione. La localizzazione e la sostituzione viene eseguita con oggetti stringa istanziati e non stringhe create usando un puntatore di carattere costante.

L'oggetto stringa è una struttura dei dati e il suo componente principale è un elenco. Ogni cella di questo elenco ha un carattere. La sequenza totale di caratteri forma la stringa letterale. Ogni posizione dei caratteri può essere accessibile da un indice o da un iteratore. Il conteggio dell'indice inizia da zero. Un iteratore è un puntatore elaborato.

La classe String C+ ha diverse varianti della funzione membro sostituito (). Tale serie di funzioni sono chiamate funzioni sovraccarichi. Questo articolo spiega come utilizzare le diverse funzioni del membro String String ().

La seguente stringa di destinazione verrà utilizzata per tutti gli esempi:

"Il nostro pianeta ha 24 ore al giorno."

L'elemento (carattere) di un oggetto stringa è possibile accedere a un riferimento o da un iteratore. C ++ 20 ha effettivamente 14 funzioni di sostituzione di sostituti () per la classe stringa. Con sette di queste funzioni, gli elementi sono accessibili per riferimento, mentre con gli altri sette, gli elementi sono accessibili da un iteratore.

Le funzioni di sette membri, per le quali gli elementi sono accessibili per riferimento, saranno spiegate in questo articolo. Verrà spiegato solo uno per i restanti sette, per iteratori. Con la conoscenza di quello, per il quale l'iteratore accede agli elementi, il lettore può dedurre la spiegazione per i restanti sei.

BASIC_STRING & SPOSTA (size_type POS1, size_type N1, const t & t)

Questa funzione membro va all'indice a POS1, quindi misura una sotto-corda di lunghezza N1 (a partire da POS1) e la sostituisce con un'altra sotto-corda indipendente di array di cartoni. La sotto-corda deve essere sostituita e la sotto-corda non deve essere della stessa lunghezza. Il seguente programma illustra questo:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

String Target = String ("Il nostro pianeta ha 24 ore al giorno.");
CHAR SOSPECECET [] = "Solar Home";
String Result = Target.Sostituire (4, 6, sostituzione);
cout << result << endl;
restituzione 0;

L'output è:

La nostra casa solare ha 24 ore al giorno.

La stringa restituita è un oggetto stringa. Per utilizzare la funzione membro Sostituisci () della classe String, la libreria String deve essere inclusa nel programma (con una direttiva).

Nota: tutto il codice stringa per questo articolo è nella funzione principale C ++.

BASIC_STRING & SPOSTA (size_type POS, size_type n1, const grafico* s)

Questa funzione membro è quasi la stessa di quanto sopra. Va all'indice a POS, misura una sotto-corda di lunghezza N1 (a partire da POS) e la sostituisce con un'altra sottostruttura indipendente di una costante-pointer-to-chars. La sotto-corda sostituita e la sostituzione della sotto-corda non devono essere della stessa lunghezza. Il seguente programma illustra questo:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

String Target = String ("Il nostro pianeta ha 24 ore al giorno.");
const char* sostituzione = "casa solare";
String Result = Target.Sostituire (4, 6, sostituzione);
cout << result << endl;
restituzione 0;

L'output è:

La nostra casa solare ha 24 ore al giorno.

BASIC_STRING & SPOSTA (size_type POS1, size_type N1, const basic_string e str)

Questa funzione membro è simile a quanto sopra. Tuttavia, la stringa di sostituzione è un oggetto stringa, istanziato dalla classe stringa. Il seguente programma illustra questo:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

String Target = String ("Il nostro pianeta ha 24 ore al giorno.");
String Sostitcement = String ("Solar Home");
String Result = Target.Sostituire (4, 6, sostituzione);
cout << result << endl;
restituzione 0;

L'output è:

La nostra casa solare ha 24 ore al giorno.

BASIC_STRING & SPOSTA (size_type POS, size_type N1, size_type N2, grafico C)

Questa funzione membro è simile a quanto sopra. Tuttavia, la stringa di sostituzione è lo stesso carattere, ripetuta N2. Si noti che ci sono quattro parametri per questa funzione. Il seguente programma ne illustra l'uso:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

String Target = String ("Il nostro pianeta ha 24 ore al giorno.");
String Result = Target.sostituire (4, 6, 3, 'e');
cout << result << endl;
restituzione 0;

L'output è:

Il nostro EEE ha 24 ore al giorno.

"Pianeta" è stato sostituito da tre E (per la Terra).

BASIC_STRING & SPOSTA (size_type POS, size_type N1, const grafico* S, size_type N2)

Questa funzione membro è simile a quanto sopra. Tuttavia, la stringa di ricambio è un puntatore costante a Chars, i cui primi caratteri N2 vengono utilizzati per la sostituzione. Il seguente programma illustra questo:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

String Target = String ("Il nostro pianeta ha 24 ore al giorno.");
const char* sostituzione = "terreno di terra";
String Result = Target.Sostituire (4, 6, sostituzione, 5);
cout << result << endl;
restituzione 0;

L'output è:

La nostra terra ha 24 ore al giorno.

BASIC_STRING & SPOSTA (size_type POS1, size_type N1, const t & t, size_type pos2, size_type n2 = npos)

Questa funzione membro è simile a quanto sopra. Tuttavia, la stringa di sostituzione è una matrice di cartoni i cui caratteri N2 vengono utilizzati per la sostituzione, a partire da una posizione della stringa di sostituzione, POS2, che non è necessariamente zero. Se il quarto argomento di questa funzione è assente, il numero di caratteri per la sostituzione proverà da POS2 alla fine della matrice di cartoni; Altrimenti, saranno N2 caratteri da POS2. Il seguente programma illustra questo:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

String Target = String ("Il nostro pianeta ha 24 ore al giorno.");
Char sostituzione [] = "The Earth World";
String Result = Target.Sostituire (4, 6, sostituzione, 4, 5);
cout << result << endl;
restituzione 0;

L'output è:

La nostra terra ha 24 ore al giorno.

BASIC_STRING & SPOSTA (size_type POS1, size_type N1, const basic_string & str, size_type pos2, size_type n2 = NPOS)

Questa funzione membro è simile a quanto sopra. Tuttavia, la stringa di sostituzione è un oggetto stringa, istanziato dalla classe stringa. Il seguente codice illustra questo:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

String Target = String ("Il nostro pianeta ha 24 ore al giorno.");
String Sostitcement = String ("The Earth World");
String Result = Target.Sostituire (4, 6, sostituzione, 4, 5);
cout << result << endl;
restituzione 0;

L'output è:

La nostra terra ha 24 ore al giorno.

BASIC_STRING & SPOSTA (const_iterator I1, const_iterator I2, const basic_string e str)

Questa funzione membro va all'elemento (carattere) della stringa di destinazione, puntata a, dall'iteratore, i1; Quindi considera i caratteri fino a quello indicato, dall'iteratore, i2. Questo intervallo deve essere sostituito da tutti i caratteri di un oggetto stringa, istanziato da una classe. Il seguente programma illustra questo:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

String Target = String ("Il nostro pianeta ha 24 ore al giorno.");
String Sostitcement = String ("Solar World");
String :: iterator it1 = target.inizio();
it1 = it1 + 4;
String :: iterator it2 = target.inizio();
it2 = it2 + 10;
String Result = Target.sostituire (it1, it2, sostituzione);
cout << result << endl;
restituzione 0;

L'output è:

Il nostro mondo solare ha 24 ore al giorno.

L'ultimo elemento dell'intervallo, indicato dal secondo iteratore, non ha preso parte alla sostituzione; era solo il delimitatore superiore.

Sono stati usati due iteratori, iT1 e it2. Ciascuno è stato ottenuto dalla funzione membro Begin () della classe stringa. La funzione membro Begin () restituisce un iteratore, che indica il primo elemento dell'oggetto stringa. Per fare in modo che 1 punta a 'p' di "pianeta" all'indice 4 della stringa target, doveva essere aumentato di 4. Per fare in modo che 2 punta a "subito dopo il" pianeta "all'indice 10 della stringa target, iT2 doveva essere aumentato di 10.

Conclusione

È una sotto-corda dell'elenco di un oggetto stringa, istanziato da una classe di stringhe, che è considerata per la sostituzione. Una sottostringa di una stringa dichiarata come array-of-chars o costante puntatore ai caratteri non è considerata per la sostituzione. La stringa di sostituzione è un'altra stringa indipendente. L'intera stringa letterale della stringa di sostituzione può eseguire la sostituzione, oppure una parte di essa può ancora eseguire la sostituzione. La classe String C ++ 20 ha funzioni sovraccaricate di 14 membri per la sostituzione, 8 delle quali sono state spiegate sopra.