En streng omtales som en rekke tegn. I C++ er en strøm/sekvens av tegn lagret i en char array. C++ inkluderer std::string-klassen som brukes til å representere strenger. Det er en av de mest grunnleggende datatypene i C++, og den kommer med et stort sett med innebygde funksjoner. I denne artikkelen vil vi se på funksjonene til strengberegninger.
Hva er std::string?
Std::strengen er en klasse i C++ siden C++98. Denne klassen er standardrepresentasjonen for en tekststreng. Den inkluderer noen typiske strengoperasjoner som finn, erstatt, sett sammen, sammenlign osv. Den finnes i header-fil.
Erklæring og initialisering av streng
std::string company = 'techcodeview.com!';>
Vanlig brukte strengfunksjoner i C++
Klassen std::string inneholder funksjoner for å gi noen vanlige strengoperasjoner. Tabellen nedenfor inneholder noen av de mest brukte funksjonene i C++:
| Ja Nei. | Kategori | Funksjoner og operatører | Funksjonalitet |
|---|---|---|---|
| 1. plsql | Strengelengde | lengde() eller størrelse() | Det vil returnere lengden på strengen. |
| 2. | Tilgang til tegn | Indeksering (ved hjelp av array[index]) | For å få tilgang til individuelle tegn ved hjelp av array-indeksering. |
| på() | Brukes for å få tilgang til et tegn ved en spesifisert indeks. | ||
| 3. | Legge til og sammenkoble strenger | + Operatør | + operator brukes til å sette sammen to strenger. |
| Funksjonen append() legger til en streng på slutten av en annen. | |||
| 4. | Strengesammenligning | == Operatør | Du kan sammenligne strenger ved å bruke ==-operatoren. |
| Compare()-funksjonen returnerer en heltallsverdi som indikerer sammenligningsresultatet. | |||
| 5. | Understrenger | Bruk substr()-funksjonen til å trekke ut en delstreng fra en streng. | |
| 6. | Søker | Finn()-funksjonen returnerer posisjonen til den første forekomsten av en delstreng. | |
| 7. | Endre strenger | erstatte() | Bruk replace()-funksjonen for å endre en del av strengen. |
| sett inn() | Funksjonen insert() legger til en delstreng på en spesifisert posisjon. | ||
| viske ut() | Bruk erase()-funksjonen for å fjerne en del av strengen. | ||
| 8. | Omdannelse | c_str() | For å få en C-stilstreng fra en std::streng, kan du bruke c_str()-funksjonen. |
Merk: Funksjonene ovenfor fungerer bare for C++ Style-strenger (std::string-objekter) ikke for C Style-strenger (array of characters).
1. Strengelengde – lengde() eller størrelse()
Vi kan finne lengden på strengen (antall tegn) ved å bruke enten lengde() eller størrelse() funksjonen til std::string-klassen.
Syntaks
string_object. size() or string_object. length()>
Parametere
- Denne funksjonen tar ingen parameter.
Returverdi
- Denne funksjonen returnerer antall tegn i strengobjektet.
Eksempel
std::string text = 'geeksforGeeks'; int length = text.length(); //or int length = text.size();>
Det vil returnere lengden på strengen tekst som er 13.
2. Tilgang til tegn – at()
Generelt kan vi få tilgang til tegnet til en streng ved å bruke [] array subscript operator og indeksering. Men std::string har også en funksjon kalt på() som kan brukes til å få tilgang til tegnene i strengen.
Syntaks
string_object. at( index );>
Parametere
- indeks: Den representerer plasseringen til tegnet i strengen.
Returverdi
- Denne funksjonen returnerer tegnet som er tilstede ved indeks.
Eksempel
std::string str = 'GEEKSFORGEEKS'; std::cout << str.at(3);>
Std::cout vil skrive ut K på konsollen ettersom det er tegnet som finnes i indeks 3.
3. Sammenkoble strenger – append() eller + Operator
Vi kan sette sammen streng i C++ ved å bruke to metoder:
1. + Operatør
Operatoren + er overbelastet i std::string-klassen for å utføre strengsammenkobling.
Syntaks
string_object1 + string_object2>
Eksempel
std::string firstName = 'Geeks'; std::string lastName = 'forGeeks'; std::string fullName = firstName + ' ' + lastName;>
+ operator brukes til å sette sammen to strenger. Strengen fullName vil være techcodeview.com.
2. tilføy()
Append()-funksjonen er en annen medlemsfunksjon for å sette sammen to strenger.
Syntaks
string_object1. append ( string2 )>
Parametere
- string2: Denne funksjonen tar strengen som skal legges til som en parameter. Det kan være både C- eller C++-stilstreng.
Returverdi
- Referanse til den siste strengen.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string> Funksjonen append() legger til en streng på slutten av en annen.
4. String Comparison – compare() eller == Operator
Akkurat som sammenkoblingen, kan vi gjøre strengsammenligningen ved å bruke to metoder:
1. == Operatør
Likhetsoperatoren kan brukes til å sammenligne de to strengene ettersom den er overbelastet for denne operasjonen i std::string-klassen.
Syntaks
string_object1 == string_object2>
Dette kommer tilbake ekte hvis begge strengene er like, returnerer ellers falsk.
Eksempel
std::string str1 = 'apple'; std::string str2 = 'banana'; if (str1 == str2) { std::cout << 'Strings are equal'; } else { std::cout << 'Strings are not equal'; }> Her vil Strings is not like bli skrevet ut som ==-operatoren vil returnere falsk.
2. sammenlign()
Compare()-funksjonen er en medlemsfunksjon av std::string-klassen som kan brukes til å sammenligne to strenger.
Syntaks
str1. compare( str2 );>
Parametere
- str2: Det er strengen som skal sammenlignes. Det kan være både C- eller C++-stilstreng.
Returverdi
- Hvis strengene er like, returner null.
- Hvis str1 er større enn str2, returner verdien >0
- Hvis str2 er større enn str1, returner verdien <0
Eksempel
string str1 = 'Geeks'; string str2: = 'Geeksfor'; int result = str1. compare (str2);>
Resultatet vil inneholde en verdi mindre enn null ettersom str2 er større enn str1.
Vi kan også sammenligne delstrengen til str2 ved å bruke sammenligningsfunksjonen():
str1.compare(position, length, str2);>
hvor,
- posisjon : posisjonen til den første tegn-delstrengen. lengde: lengden på delstrengen. str2: Strengobjekt som skal sammenlignes.
5. Søking – finn()
Vi kan bruke finne() funksjonen til std::string-klassen for å sjekke om et gitt tegn eller en delstreng finnes i strengen eller en del av strengen.
Syntaks for finn()
str1.find(var);>
Parametere
- var: Det kan være en C-stilstreng, C++-stilstreng eller et tegn som skal søkes i strengen.
Returverdi
- Den returnerer pekeren til den første forekomsten av tegnet eller en delstreng i strengen.
Eksempel
std::string text = 'C++ Programming'; int position = text.find('Programming'); // Find the position of a substring> Posisjonsvariabelen vil inneholde 4 som er starten på den første forekomsten av strengen Programmering i strengtekst.
6. Generer delstreng – substr()
Vi kan bruke substr() funksjon for å generere en del av strengen som et nytt strengobjekt. Det er en medlemsfunksjon i std::string-klassen.
Syntaks for substr() i C
str1. substr ( start, end );>
Parametere
- start: Startposisjonen til delstrengen som skal genereres. end: Slutt på delstrengen som skal genereres.
Returtype
- Den returnerer det nyopprettede strengobjektet.
Eksempel
std::string text = 'Hello, World!'; std::string sub = text.substr(7, 5); // Extract 'World'>
I eksemplet ovenfor. de under streng vil inneholde verden.
Endre strenger
Følgende funksjon lar oss endre gjeldende streng.
1. sett inn()
Funksjonen insert() lar oss ikke bare legge til en streng, men lar oss også legge den til på den angitte posisjonen. Det er også en medlemsfunksjon i std::string-klassen.
Syntaks
str1. insert (index, str2);>
Parametere
- str2: streng som skal settes inn. indeks: plasseringen av hvor den nye strengen skal settes inn
Returtype
java streng trim
- Referanse til str1.
Eksempel
std::string text = 'I have a cat.'; text.insert(9, ' black'); // Insert ' black' at position 9>
2. erstatte()
Replace()-funksjonen erstatter delen av strengen med den gitte andre strengen. I motsetning til insert, fjernes tegnene i delen der den nye strengen skal settes inn.
Syntaks
str1. replace ( index, size, str2 );>
Parametere
- indeks: Indeks over hvor du skal begynne å erstatte den nye strengen. størrelse: lengden på den delen av strengen som skal byttes ut. str2: ny streng som skal settes inn.
Returtype
- Referanse til str1.
Eksempel
std::string text = 'I like dogs.'; text.replace(7, 4, 'cats'); // Replace 'dogs' with 'cats'>
3. slett()
Erase()-funksjonen er en medlemsfunksjon av std::string-klassen som brukes til å fjerne et tegn eller en del av strengen.
Syntaks
str1 .erase( start, end);>
Parametere
- start: Startposisjon. slutt: Sluttposisjon.
Returtype
- Referanse til str1.
Eksempel
std::string text = 'This is an example.'; text.erase(5, 3); // Erase 'is '>
Konverter std::streng til C-streng – c_str)_
c_str()-funksjonen er en medlemsfunksjon som brukes til å konvertere C++-stilstrengen, dvs. std::string-objekter, til C-stilstreng, dvs. en rekke tegn.
Syntaks
str1.c_str()>
Parametere
- Denne funksjonen tar ingen parameter.
Returverdi
- Peker til det tilsvarende utvalget av tegn.
Eksempel
std::string str = 'C++'; const char* cstr = str.c_str()>
Eksempel på strengfunksjoner i C++
Koden nedenfor demonstrerer bruken av de ovenfor angitte strengfunksjonene:
C++
// C++ Code to demostrate various functions available in> // String class> > #include> #include> > using> namespace> std;> > int> main()> {> >// Creating and initializing strings> >string greeting =>'Hello, World!'>;> >cout << greeting << endl;> >string name;> > >// Input from the user> >cout <<>'Enter your name: '>;> >cin>> navn;> >cout << name << endl;> > >// String length> >int> length = greeting.length();> >cout << length << endl;> > >// Accessing characters> >char> firstChar = greeting[0];> >char> secondChar = greeting.at(1);> >cout << firstChar <<>' '> << secondChar << endl;> > >// Appending and concatenating strings> >string firstName =>'Geek'>;> >string lastName =>'Geeks'>;> >string fullName = firstName +>' '> + lastName;> >cout << fullName << endl;> >string base =>'Hello'>;> >cout << base << endl;> >base.append(>' World!'>);> >cout << base << endl;> > >// String comparison> >string str1 =>'apple'>;> >string str2 =>'banana'>;> >if> (str1 == str2) {> >cout <<>'Strings are equal'> << endl;> >}> >else> {> >cout <<>'Strings are not equal'> << endl;> >}> > >int> result = str1.compare(str2);> >if> (result == 0) {> >cout <<>'Strings are equal'> << endl;> >}> >else> if> (result <0) {> >cout <<>'str1 comes before str2'> << endl;> >}> >else> {> >cout <<>'str1 comes after str2'> << endl;> >}> > >// Substrings> >string text =>'Hello, World!'>;> >cout << text << endl;> >string sub = text.substr(7, 5);> >cout << sub << endl;> > >// Searching> >string searchIn =>'C++ Programming'>;> >size_t> position = searchIn.find(>'Programming'>);> >if> (position != string::npos) {> >cout <<>'Found at position '> << position << endl;> >}> >else> {> >cout <<>'Not found'> << endl;> >}> > >// Modifying strings> >string modify =>'I like dogs.'>;> >modify.replace(7, 4,>'cats'>);> >cout << modify << endl;> >modify.insert(6,>' black'>);> >cout << modify << endl;> >modify.erase(6, 6);> >cout << modify << endl;> > >// Conversion> >string str =>'C++'>;> >const> char>* cstr = str.c_str();> >cout << cstr << endl;> > >return> 0;> }> |
>
>
Produksjon
Hello, World! Enter your name: Geeks Geeks 13 H e Geek Geeks Hello Hello World! Strings are not equal str1 comes before str2 Hello, World! World Found at position 4 I like cats. I like black cats. I like cats. C++>