C ++ streng vedlegg

C ++ streng vedlegg
Ordet "vedlegg" betyr å legge til noe på baksiden av en annen ting. En streng kan deklareres i C ++ på to hovedmåter. Å erklære en streng som en matrise-av-chars eller som en konstant peker-til-sjar er en vei. Det er en annen måte å installere en strengobjektdatastruktur fra strengklassen. For å instantisere et strengobjekt fra strengklassen, må C ++ String -biblioteket inkluderes i programmet.

Tenk på følgende målstreng:

"Dans på månen"

'!'Som karakter kan det legges til målstrengen, for at den skal bli,

"Dans på månen!""

Substring “S Surface”, kan legges til målstrengen, for at den skal bli,

"Dans på månens overflate"

C ++ strengklassen har medlemsfunksjonen, vedlegg (), for å legge til. Det er faktisk 9 varianter av denne medlemsfunksjonen i C ++ 20. Slike varianter av funksjoner kalles overbelastede funksjoner. De 9 overbelastede funksjonene vil bli forklart i denne artikkelen, som begynner med det enkleste. C ++ String push_back () -funksjonen vil også bli forklart. Strenger erklært som array-of-chars eller som konstant-peker-til-sjarer ikke vurderes for å legge. Bare strenger som er instantiert fra strengklassen, vurderes for å legge til.

Basic_String & Append (Const T&T)

Denne medlemsfunksjonen returnerer den vedlagte strengen. Det tar som argument, en matrise-av-sjarer. Følgende kode illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
char chs [] = "'s overflate";
Strengresultat = mål.vedlegg (CHS);
cout << result << endl;
retur 0;

Utgangen er:

Dans på månens overflate

Merk: Både originalen og returnerte strengene er vedlagt.

Basic_String & Append (Const Chart* s)

Denne medlemsfunksjonen er veldig lik den ovennevnte funksjonen. Det tar en konstant peker til chars som et argument og returnerer den vedlagte strengen. Følgende program illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
const char* cpc = "'s overflate";
Strengresultat = mål.vedlegg (CPC);
cout << result << endl;
retur 0;

Utgangen er:

Dans på månens overflate

Basic_String & Append (Initializer_list)

Denne medlemsfunksjonen ligner på det ovennevnte, men den tar selve strenglisten som et argument. Listen kan være en streng bokstavelig i doble sitater, eller en sekvens av tegn, som slutter med NUL (\ 0) i tannregulering. Funksjonen returnerer den vedlagte strengen. Følgende program illustrerer dette, for strengen bokstavelig i dobbeltkvoter:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
Strengresultat = mål.vedlegg ("'s overflate");
cout << result << endl;
retur 0;

Utgangen er:

Dans på månens overflate

Følgende program illustrerer dette for Applending String, som Array-of-Characters:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
Strengresultat = mål.vedlegg ('\' ',' s ', ",' s ',' u ',' r ',' f ',' a ',' c ',' e ',' \ 0 ');
cout << result << endl;
retur 0;

Utgangen er:

Dans på månens overflate

Basic_String & Append (const Basic_String & Str)

Denne medlemsfunksjonen er lik det ovennevnte, men den legger til alle listene over et annet instantiert strengobjekt. Funksjonen returnerer den vedlagte strengen. Følgende program illustrerer dette (for to strengobjekter):

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
String andrestr = streng ("'s overflate");
String :: iterator it = andrestr.begynne();
Strengresultat = mål.vedlegg (andrestr);
cout << result << endl;
retur 0;

Utgangen er:

Dans på månens overflate

Basic_String & Append (InputIterator First, InputIterator Last)

Denne medlemsfunksjonen er lik det ovennevnte, men for den like etter det siste elementet i området. Funksjonen returnerer den vedlagte strengen. Følgende program illustrerer dette for to strengobjekter:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
String andrestr = streng ("Jordens overflate er ikke glatt");
String :: iterator it = andrestr.begynne();
String :: iterator fst = it + 9;
String :: iterator lst = it + 19;
Strengresultat = mål.vedlegg (fst, lst);
cout << result << endl;
retur 0;

Utgangen er:

Dans på månens overflate

Legg merke til hvordan FST- og LST -iteratorene ble bestemt.

Basic_String & Append (Const Chart* S, Size_Type N)

Denne medlemsfunksjonen er lik det ovennevnte, men den legger til de første N-tegnene i karaktersekvensen, pekt på av en konstant peker-til-char. Funksjonen returnerer den vedlagte strengen. Følgende program illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
const char* cpc = "'s overflate";
Strengresultat = mål.vedlegg (CPC, 7);
cout << result << endl;
retur 0;

Utgangen er:

Dans på månens surfe

Basic_String & Append (Const T&T, Size_Type POS, Size_Type N = NPOS)

Denne medlemsfunksjonen ligner på det ovennevnte, men den legger til N-tegn i karaktersekvensen pekt på, av en konstant peker-til-char, som begynner fra indeksen, POS. Funksjonen returnerer den vedlagte strengen. Følgende program illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
const char* cpc = "'s overflate";
Strengresultat = mål.vedlegg (CPC, 2, 5);
cout << result << endl;
retur 0;

Utgangen er:

Dans på månen surfe

Hvis det tredje argumentet er fraværende, blir karakterene hentet fra POS til slutten av strengen.

Basic_String & Append (const Basic_String & Str, Size_Type POS, Size_Type N = NPOS)

Denne medlemsfunksjonen ligner på ovennevnte, men den andre strengen er et instantiert strengobjekt og ikke en konstant peker-til-char. Funksjonen returnerer den vedlagte strengen. Følgende program illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
streng andrestr = "'s overflate";
Strengresultat = mål.vedlegg (andrestr, 2, 5);
cout << result << endl;
retur 0;

Utgangen er:

Dans på månen surfe

Hvis det tredje argumentet er fraværende, blir karakterene hentet fra POS til slutten av strengen.

Basic_String & Append (Size_Type N, Chart C)

Denne medlemsfunksjonen kan legge til n nummer av samme karakter, c. Følgende program, illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
char ch = '!';
Strengresultat = mål.vedlegg (3, CH);
cout << result << endl;
retur 0;

Utgangen er:

Dans på månen!!!

void push_back (diagram C)

Push_back () -funksjonen returnerer tomrom. Den legger bare ett tegn, C. Følgende program illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
char ch = '!';
mål.push_back (ch);
cout << target << endl;
retur 0;

Utgangen er:

Dans på månen!

Siden ingen ny streng returneres, bør den opprinnelige målstrengen endres.

Sette inn

Strengklassen har også en medlemsfunksjon, sett inn (). Det er også en overbelastet funksjon av forskjellige varianter. Et av hovedargumentene for innsatsfunksjonen er en iterator. Hvis insert () -funksjonen oppfører seg som append () -funksjonen, trenger den en iterator som peker rett etter strengens siste tegn. Alle innsat () -funksjoner endrer det originale målet og returner ikke den vedlagte strengen.

Følgende program viser hvordan et enkelt tegn blir lagt til en målstreng, ved hjelp av Insert () -funksjonen:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
String :: iterator it = mål.slutt();
mål.sett inn (det, '!');
cout << target << endl;
retur 0;

Utgangen er:

Dans på månen!

Følgende program viser hvordan en initializer -liste er lagt til en streng:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
String :: iterator it = mål.slutt();
mål.Sett inn (it, '\' ',' S ', ",' S ',' U ',' r ',' F ',' A ',' C ',' E ',' \ 0 ') ;
cout << target << endl;
retur 0;

Utgangen er:

Dans på månens overflate

I stedet for å bruke iteratoren, kan innsatsen () -funksjonen bruke tallet, som er en større enn maksimal indeks. Dette tallet kan fås av uttrykket, Stringobj.størrelse(). Følgende kode illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
String :: iterator it = mål.slutt();
const char* cpc = "'s overflate";
mål.Sett inn (mål.størrelse (), CPC);
cout << target << endl;
retur 0;

Utgangen er:

Dans på månens overflate

Følgende program ligner på ovennevnte, men den andre strengen, er et strengobjekt:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Strengmål = String ("Dancing on the Moon");
String :: iterator it = mål.slutt();
String andrestr = streng ("'s overflate");
mål.Sett inn (mål.størrelse (), andrestr);
cout << target << endl;
retur 0;

Utgangen er:

Dans på månens overflate

Konklusjon

For å legge til en målstreng, bruk String Class Append () medlemsfunksjon. Det er ni overbelastede varianter av Append () medlemsfunksjonen i C++. For å legge til bare ett tegn, kan Push_back () medlemsfunksjonen brukes. INSERT () medlemsfunksjonen kan også brukes til å legge til. I dette tilfellet må stillingen, like etter strengens siste karakter, nås.