C++-strenger er sekvenser av tegn lagret i en char-array. Strenger brukes til å lagre ord og tekst. De brukes også til å lagre data, for eksempel tall og annen type informasjon. Strenger i C++ kan defineres enten ved å bruke std::string klasse eller C-stil karakterarrayer.

1. C-stilstrenger
Disse strengene lagres som den vanlige gamle rekken av tegn som avsluttes av en nulltegn « » . De er typen strenger som C++ arvet fra C-språket.
Syntaks:
char str[] = 'techcodeview.com';>
Eksempel:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Produksjon
techcodeview.com>
2. std::string Klasse
Dette er de nye typene strenger som er introdusert i C++ som std::string-klasse definert i header-filen. Dette gir mange fordeler i forhold til konvensjonelle C-stil strenger som dynamisk størrelse, medlemsfunksjoner, etc.
Syntaks:
std::string str('techcodeview.com');> Eksempel:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Produksjon
techcodeview.com>
En annen måte vi kan lage strenger som har samme karakter som gjentar seg igjen og igjen.
Syntaks:
std::string str(number,character);>
Eksempel:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Produksjon:
ggggg>
Måter å definere en streng i C++
Strenger kan defineres på flere måter i C++. Strenger kan nås fra standardbiblioteket ved å bruke strengklassen. Tegnmatriser kan også brukes til å definere strenger. String gir et rikt sett med funksjoner, for eksempel søk og manipulering, som er ofte brukte metoder. Til tross for at den er mindre avansert enn strengklassen, er denne metoden fortsatt mye brukt, siden den er mer effektiv og enklere å bruke. Måter å definere en streng i C++ er:
- Bruke streng nøkkelord
- Bruker strenger i C-stil
1. Bruke streng nøkkelord
Det er mer praktisk å definere en streng med string-nøkkelordet i stedet for å bruke array-nøkkelordet fordi det er lett å skrive og forstå.
Syntaks:
string s = 'techcodeview.com'; string s('techcodeview.com');> Eksempel:
C++
// C++ Program to demonstrate use of string keyword> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >string str(>'techcodeview.com'>);> >cout <<>'s = '> << s << endl;> >cout <<>'str = '> << str << endl;> >return> 0;> }> |
>
>Produksjon
s = techcodeview.com str = techcodeview.com>
2. Bruke strenger i C-stil
Bruke C-stil strengbibliotekfunksjoner som strcpy(), strcmp() og strcat() for å definere strenger. Denne metoden er mer kompleks og ikke så mye brukt som de to andre, men den kan være nyttig når du arbeider med eldre kode eller når du trenger ytelse.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> Eksempel:
C++
// C++ Program to demonstrate C-style string declaration> #include> using> namespace> std;> int> main()> {> >char> s1[] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s2[4] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s3[4] =>'gfg'>;> >char> s4[] =>'gfg'>;> >cout <<>'s1 = '> << s1 << endl;> >cout <<>'s2 = '> << s2 << endl;> >cout <<>'s3 = '> << s3 << endl;> >cout <<>'s4 = '> << s4 << endl;> >return> 0;> }> |
>
>Produksjon
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Et annet eksempel på C-stil streng:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Produksjon
Your string is= Geeeks for Geeks>
Hvordan ta strenginndata i C++
Strenginput betyr å akseptere en streng fra en bruker. I C++. Vi har ulike typer innspill fra brukeren som avhenger av strengen. Den vanligste måten er å ta innspill med spiser nøkkelord med uttrekksoperatoren (>>) i C++. Metoder for å ta en streng som input er:
- spiser
- getline
- strengstrøm
1. Bruk av Cin
Den enkleste måten å ta strenginndata på er å bruke spiser kommando sammen med strømutvinningsoperatøren (>>).
Syntaks:
cin>>s;>
Eksempel:
C++
postordre traversering av binært tre
// C++ Program to demonstrate string input using cin> #include> using> namespace> std;> int> main() {> >string s;> > >cout<<>'Enter String'>< cin>>s; cout<<'String is: '< return 0; }> |
>
>Produksjon
Enter String String is:>
Produksjon:
Enter String techcodeview.com String is: techcodeview.com>
2. Bruke getline
De getline() funksjon i C++ brukes til å lese en streng fra en inngangsstrøm. Det er deklarert i overskriftsfilen.
Syntaks:
getline(cin,s);>
Eksempel:
C++
forhåndsbestill traversering
// C++ Program to demonstrate use of getline function> #include> using> namespace> std;> int> main()> {> >string s;> >cout <<>'Enter String'> << endl;> >getline(cin, s);> >cout <<>'String is: '> << s << endl;> >return> 0;> }> |
>
>Produksjon
Enter String String is:>
Produksjon:
Enter String techcodeview.com String is: techcodeview.com>
3. Bruke stringstream
De stringstream klasse i C++ brukes til å ta flere strenger som input samtidig.
Syntaks:
stringstream stringstream_object(string_name);>
Eksempel:
C++
// C++ Program to demonstrate use of stringstream object> #include> #include> #include> using> namespace> std;> int> main()> {> >string s =>' techcodeview.com to the Moon '>;> >stringstream obj(s);> >// string to store words individually> >string temp;> >//>> vil operatøren lese fra stringstream-objektet> >while> (obj>> temp) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Produksjon
techcodeview.com to the Moon>
Hvordan sende strenger til funksjoner?
På samme måte som vi sender en matrise til en funksjon, kan strenger i C++ sendes til funksjoner som tegnmatriser. Her er et eksempelprogram:
Eksempel:
C++
// C++ Program to print string using function> #include> using> namespace> std;> void> print_string(string s)> {> >cout <<>'Passed String is: '> << s << endl;> >return>;> }> int> main()> {> >string s =>'techcodeview.com'>;> >print_string(s);> >return> 0;> }> |
>
>Produksjon
Passed String is: techcodeview.com>
Pekere og strenger
Pekere i C++ er symbolske representasjoner av adresser. De gjør det mulig for programmer å simulere samtale-for-referanse samt å lage og manipulere dynamiske datastrukturer. Ved å bruke pekere kan vi få det første tegnet i strengen, som er startadressen til strengen. Som vist nedenfor, kan den gitte strengen nås og skrives ut gjennom pekerne.
Eksempel:
C++
// C++ Program to print string using pointers> #include> using> namespace> std;> int> main()> {> >string s =>'Geeksforgeeks'>;> >// pointer variable declared to store the starting> >// address of the string> >char>* p = &s[0];> >// this loop will execute and print the character till> >// the character value is null this loop will execute and> >// print the characters> >while> (*p !=>' '>) {> >cout << *p;> >p++;> >}> >cout << endl;> >return> 0;> }> |
>
>Produksjon
Geeksforgeeks>
Forskjellen mellom String og Character array i C++
Hovedforskjellen mellom en streng og en tegnmatrise er at strenger er uforanderlige, mens tegnmatriser ikke er det.
| String | Character Array |
|---|---|
| Strenger definerer objekter som kan representeres som strengstrømmer. | Null-tegnet avslutter en tegnserie med tegn. |
| Ingen matriseforfall forekommer i strenger da strenger er representert som objekter. | Trusselen om array forfall er tilstede i tilfellet med tegnarrayen |
| En strengklasse gir en rekke funksjoner for å manipulere strenger. | Tegnmatriser tilbyr ikke innebygde funksjoner for å manipulere strenger. |
| Minne tildeles dynamisk. | Størrelsen på tegnarrayen må allokeres statisk. |
Vit mer om forskjell mellom strenger og tegnarrayer i C++
C++ strengfunksjoner
C++ gir noen innebygde funksjoner som brukes til strengmanipulering, for eksempel strcpy()- og strcat()-funksjonene for å kopiere og sette sammen strenger. Noen av dem er:
| Funksjon | Beskrivelse |
|---|---|
| lengde() | Denne funksjonen returnerer lengden på strengen. |
| bytte() | Denne funksjonen brukes til å bytte verdiene til 2 strenger. |
| størrelse() | Brukes til å finne størrelsen på strengen |
| endre størrelse() | Denne funksjonen brukes til å endre størrelsen på strengen til det gitte antallet tegn. |
| finne() | Brukes til å finne strengen som sendes i parametere |
| push_back() | Denne funksjonen brukes til å skyve det beståtte tegnet på slutten av strengen |
| pop_back() | Denne funksjonen brukes til å åpne det siste tegnet fra strengen |
| klar() | Denne funksjonen brukes til å fjerne alle elementene i strengen. |
| strncmp() | Denne funksjonen sammenligner på det meste det første antallet byte av begge beståtte strenger. |
| strncpy() | Denne funksjonen ligner på strcpy()-funksjonen, bortsett fra at maksimalt n byte av src blir kopiert |
| strrchr() | Denne funksjonen finner den siste forekomsten av et tegn i strengen. |
| strach() | Denne funksjonen legger til en kopi av kildestrengen på slutten av målstrengen |
| finne() | Denne funksjonen brukes til å søke etter en bestemt delstreng inne i en streng og returnerer posisjonen til det første tegnet i delstrengen. |
| erstatte() | Denne funksjonen brukes til å erstatte hvert element i området [første, siste) som er lik gammel verdi med ny verdi. |
| substr() | Denne funksjonen brukes til å lage en delstreng fra en gitt streng. |
| sammenligne() | Denne funksjonen brukes til å sammenligne to strenger og returnerer resultatet i form av et heltall. |
| viske ut() | Denne funksjonen brukes til å fjerne en bestemt del av en streng. |
C++ Strings iterator funksjoner
I C++ gir innebygde strengiteratorfunksjoner programmereren en enkel måte å endre og krysse strengelementer på. Disse funksjonene er:
| Funksjoner | Beskrivelse |
|---|---|
| begynne() | Denne funksjonen returnerer en iterator som peker til begynnelsen av strengen. |
| slutt() | Denne funksjonen returnerer en iterator som peker til slutten av strengen. |
| rfinn() | Denne funksjonen brukes til å finne strengens siste forekomst. |
| rbegin() | Denne funksjonen returnerer en omvendt iterator som peker mot slutten av strengen. |
| gjengi() | Denne funksjonen returnerer en omvendt iterator som peker til begynnelsen av strengen. |
| cbegin() | Denne funksjonen returnerer en const_iterator som peker til begynnelsen av strengen. |
| Noen() | Denne funksjonen returnerer en const_iterator som peker mot slutten av strengen. |
| crbegin() | Denne funksjonen returnerer en const_reverse_iterator som peker mot slutten av strengen. |
| crend() | Denne funksjonen returnerer en const_reverse_iterator som peker til begynnelsen av strengen. |
Eksempel:
C++
// C++ Program to demonstrate string iterator functions> #include> using> namespace> std;> int> main()> {> >// declaring an iterator> >string::iterator itr;> >// declaring a reverse iterator> >string::reverse_iterator rit;> >string s =>'techcodeview.com'>;> >itr = s.begin();> > >cout <<>'Pointing to the start of the string: '> << *itr<< endl;> >itr = s.end() - 1;> >cout <<>'Pointing to the end of the string: '> << *itr << endl;> >rit = s.rbegin();> >cout <<>'Pointing to the last character of the string: '> << *rit << endl;> >rit = s.rend() - 1;> >cout <<>'Pointing to the first character of the string: '> << *rit << endl;> >return> 0;> }> |
>
>Produksjon
Pointing to the start of the string: G Pointing to the end of the string: s Pointing to the last character of the string: s Pointing to the first character of the string: G>
Stringkapasitetsfunksjoner
I C++ brukes strengkapasitetsfunksjoner for å administrere strengstørrelse og kapasitet. Primære funksjoner for kapasitet inkluderer:
| Funksjon | Beskrivelse |
|---|---|
| lengde() | Denne funksjonen brukes til å returnere størrelsen på strengen |
| kapasitet() | Denne funksjonen returnerer kapasiteten som er allokert til strengen av kompilatoren |
| endre størrelse() | Denne funksjonen lar oss øke eller redusere strengstørrelsen |
| krymp for å passe() | Denne funksjonen reduserer kapasiteten og gjør den lik minimum. |
Eksempel:
C++
#include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> > >// length function is used to print the length of the string> >cout <<>'The length of the string is '> << s.length() << endl;> > >// capacity function is used to print the capacity of the string> >cout <<>'The capacity of string is '> << s.capacity()<< endl;> > >// the string.resize() function is used to resize the string to 10 characters> >s.resize(10);> > >cout <<>'The string after using resize function is '> << s << endl;> > >s.resize(20);> > >cout <<>'The capacity of string before using shrink_to_fit function is '><< s.capacity() << endl;> > >// shrink to fit function is used to reduce the capacity of the container> >s.shrink_to_fit();> >cout <<>'The capacity of string after using shrink_to_fit function is '><< s.capacity() << endl;> >return> 0;> }> |
>
>Produksjon
The length of the string is 13 The capacity of string is 15 The string after using resize function is GeeksforGe The capacity of string before using shrink_to_fit function is 30 The capacity of string...>
Avslutningsvis forklarer denne artikkelen hvordan strenger kan defieres i C++ ved å bruke tegnarrayer og strengklasser. Strengeklassen gir mer avanserte funksjoner, mens tegnarrayen gir grunnleggende funksjoner, men er effektiv og enkel å bruke. I denne artikkelen diskuterte vi også de ulike metodene for å ta innspill fra brukeren.
For å vite mer om std::string class, se artikkelen – std::string klasse i C++