logo

Strengfunksjoner i C++

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.

legge til()

Funksjonen append() legger til en streng på slutten av en annen.

4.

Strengesammenligning

== Operatør

Du kan sammenligne strenger ved å bruke ==-operatoren.

sammenligne()

Compare()-funksjonen returnerer en heltallsverdi som indikerer sammenligningsresultatet.

5.

Understrenger

substr()

Bruk substr()-funksjonen til å trekke ut en delstreng fra en streng.

6.

Søker

finne()

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++>