Hvis vi kan returnere et std :: strengobjekt fra standardmalbiblioteket, kan vi gi en konstant peker til strengen. Finne ut at strengen beholdes i statisk minne. Denne artikkelen skisserer forskjellige tilnærminger for å returnere en streng fra en C ++ -funksjon.
Bruk Std :: String Function () teknikk
Retur etter verdi er den foretrukne teknikken når du henter strengdata fra funksjoner. Etter å ha returnert relativt store strenger etter data er effektiv på grunn av flyttekonstruktøren i STD :: String -klassen. Det har blitt sagt at et element har flyttet semantisk innhold hvis det inneholder en flyttekonstruktør. Flyttesemantikk antyder at dataene ikke dupliseres til en ny stilling når funksjonen kommer tilbake, noe som fører til effektiv fullføringstid for funksjon.
#inkludere
#inkludere
#inkludere
bruker std :: cout; bruker std :: endl;
bruker std :: streng; bruker std :: revers;
String revstring (streng & s)
String Rev (S.rbegin (), s.Rend ());
Returner Rev;
int main ()
String str = "Jeg elsker å spille badminton";
cout << str << endl;
cout << RevString(str) << endl;
return exit_success;
Ved programmets start må vi ta med tre overskriftsfiler. For inngangs- og utgangsfunksjoner. Angir et sett med funksjoner som er ment å brukes på grupper av elementer. Enhver sekvens av elementer som kan hentes ved hjelp av iteratorer eller referanser, anses som et område. Som navnet tilsier, brukes til å operere med et sett med tall. Vi kaller standard 'cout' -funksjon for å få output, standard 'endl', som viser at programmet fortsetter fra neste linje, standard 'streng', som inneholder funksjonalitetene til streng, og standard 'revers' som brukes til å skaffe streng i omvendt rekkefølge.
Nå kalles 'RevString ()' -funksjonen. Her passerer vi den definerte strengen som en parameter for denne funksjonen. Vi bruker RBegin () og Rend () -funksjoner. Rbegin () er en C ++ iboende funksjon som gir en omvendt iterator som refererer til listens siste komponent. Rend () er en innebygd C ++ -funksjon som brukes til å returnere en omvendt iterator som fører til poenget før listen start. Vi går inn i "Return Rev '-erklæringen for å få motsatt snor på strengen.
Vi bruker 'endl', som viser markøren til neste linje i koden. For å skrive ut den omvendte rekkefølgen på den spesifiserte strengen, har vi brukt 'RevString'. Denne funksjonen inneholder den angitte strengen som argument. Til slutt brukes 'exit_success' for å avslutte programmet.
Bruk std :: streng og funksjon () teknikk
Denne metodikken tillater bruk av avkastning ved å referere til format, noe som vil være en annen måte å løse denne situasjonen. Selv om retur etter illusjon er den mest effektive metoden for å hente massive strukturer eller klasser, vil dette ikke innebære noen tilleggsparameter i dette scenariet sammenlignet med den tidligere strategien. Det er viktig å huske at vi ikke ville bruke en referanse for å erstatte en global variabel definert i funksjonen; Dette vil resultere i en langvarig referanse.
#inkludere
#inkludere
#inkludere
bruker std :: cout; bruker std :: endl;
bruker std :: streng; bruker std :: revers;
String & Revstr (String & S)
Omvendt (s.Begynn (), S.slutt());
return s;
int main ()
String str = "Informasjonsteknologi";
cout << str << endl;
cout << RevStr(str) << endl;
return exit_success;
Først av alt integrerer vi tre biblioteker>, og for spesifikke funksjonaliteter. Vi bruker standard 'cout' -funksjon for å hente utdata, standard 'endl' for å indikere at programmet fortsetter på følgende linje, standard 'streng' for å beholde strengens funksjoner, og standard 'revers' for å få strengen i omvendt rekkefølge. Strengens peker 'Revstr ()' brukes nå. Den spesifiserte strengen er gitt som en parameter til denne metoden. Vi kaller funksjonene Begin () og End ().
Vi bruker "retur s" -erklæringen for å få inverse av strengen. Nå vil hoved- () -funksjonen bli påkalt. Det er her logikken i programmet er erklært. Vi erklærer en streng 'informasjonsteknologi'. Denne strengen lagres i 'Str' variabel. Uttalelsen 'cout' vil bli brukt til å skaffe strengens utskrift. Vi bruker også 'endl', som betegner at markøren vil skifte til den nye kodelinjen. 'RevString' har blitt brukt til å vise den nødvendige strengen i reversert rekkefølge.
Den spesifiserte strengen sendes som en parameter til denne metoden. Til slutt endte programmet med kommandoen 'exit -suksess.'
Bruk Char Array -metoden
Tilsvarende kunne vi hente en streng fra en funksjon ved hjelp av en karaktergruppe. Strengklassen bruker et vedvarende utvalg for å holde tegn. Ved å påkalle den innebygde metoden, kan vi få en henvisning til det første karaktermedlemmet i det arrayet.
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
String str1 = "Jeg elsker å spille badminton";
String str2 = "Informasjonsteknologi";
char ch [50];
STR1.kopi (kap, 13, 0);
cout << "The new copied character array is : ";
cout << ch << endl;
cout << "Before swapping the first string is : ";
cout << str1 << endl;
cout << "Before swapping the second string is : ";
cout << str2 << endl;
STR1.Swap (str2);
cout << "After swapping the first string is : ";
cout << str1 << endl;
cout << "After swapping the second string is : ";
cout << str2 << endl;
retur 0;
Her introduserer vi toppfiler og for bruk av strengklasse. Sammen med dette har vi brukt et standard navneområde. Vi bruker hovedfunksjonen () og begynner å kode i kroppen av denne funksjonen. Vi initialiserer to strenger. Den første strengen holdes i variabelen 'STR1', og den andre strengen lagres i variabelen 'STR2'. Karakteroppstillingen er nå erklært.
Vi spesifiserer størrelsen på karakteroppstillingen. Copy () -funksjonen kalles. Substringen i den målrettede røye -arrayen som er spesifisert i parametrene, kopieres med denne metoden. De tre argumentene er den målrettede karaktermatrisen, lengden som skal dupliseres og utgangspunktet i strengen for å sette i gang duplisering. Vi ønsker å vise denne karakteroppstillingen som bruker "cout" -erklæringen.
Begge strengene har blitt vist før de bytter ved hjelp av "cout" -erklæringen. Vi bruker Swap () -funksjonen, som bytter ett strenginnhold med et annet. Etter å ha byttet, går vi igjen inn i 'cout' for å få de byttede strengene. Bruk 'Retur 0' for å avslutte koden.
Konklusjon
Strengklassen i standard C ++ -biblioteket inkluderer alle metodene som er oppført ovenfor. I denne artikkelen har vi sett en rekke metoder for å returnere en streng fra en funksjon i C++. Ulike forekomster har blitt brukt for å beskrive metodologiene, inkludert STD :: String & Function () -teknikk og STD :: String Function () -teknikken.