logo

Strängfunktioner i C++

En sträng kallas en array av tecken. I C++ lagras en ström/sekvens av tecken i en char-array. C++ inkluderar klassen std::string som används för att representera strängar. Det är en av de mest grundläggande datatyperna i C++ och den kommer med en enorm uppsättning inbyggda funktioner. I den här artikeln kommer vi att titta på funktionerna för strängberäkningar.

Vad är std::string?

std::strängen är en klass i C++ sedan C++98. Denna klass är standardrepresentationen för en textsträng. Den innehåller några typiska strängoperationer som hitta, ersätta, sammanfoga, jämföra etc. Den finns i header-fil.



Deklaration och initiering av sträng

std::string company = 'techcodeview.com!';>

Vanligt använda strängfunktioner i C++

Klassen std::string innehåller funktioner för att tillhandahålla några vanliga strängoperationer. Tabellen nedan innehåller några av de mest använda funktionerna i C++:

Ja Nej.

Kategori



Funktioner och operatörer

Funktionalitet

1.



exempel binärt sökträd
Stränglängd

length() eller storlek()

Det kommer att returnera längden på strängen.

2.

Tillgång till karaktärer

Indexering (med array[index])

För att komma åt enskilda tecken med arrayindexering.

på()

Används för att komma åt ett tecken vid ett specificerat index.

3.

Lägga till och sammanfoga strängar

+ Operatör

+ operator används för att sammanfoga två strängar.

bifoga()

Funktionen append() lägger till en sträng i slutet av en annan.

4.

Strängjämförelse

== Operatör

Du kan jämföra strängar med operatorn ==.

jämföra()

Funktionen compare() returnerar ett heltalsvärde som anger jämförelseresultatet.

5.

Delsträngar

substr()

Använd substr()-funktionen för att extrahera en delsträng från en sträng.

6.

Sökande

hitta()

Funktionen find() returnerar positionen för den första förekomsten av en delsträng.

7.

Ändra strängar

byta ut()

Använd funktionen replace() för att ändra en del av strängen.

Föra in()

Funktionen insert() lägger till en delsträng på en angiven position.

radera()

Använd funktionen erase() för att ta bort en del av strängen.

8.

Omvandling

c_str()

För att få en sträng i C-stil från en std::sträng kan du använda funktionen c_str().

Notera: Ovanstående funktioner fungerar bara för C++ Style-strängar (std::string-objekt) inte för C Style-strängar (array av tecken).

1. Stränglängd – längd() eller storlek()

Vi kan hitta längden på strängen (antal tecken) med antingen length() eller storlek() funktion för klassen std::string.

Syntax

string_object. size() or string_object. length()>

Parametrar

  • Denna funktion tar inte någon parameter.

Returvärde

  • Denna funktion returnerar antalet tecken i strängobjektet.

Exempel

std::string text = 'geeksforGeeks'; int length = text.length(); //or int length = text.size();>

Det kommer att returnera längden på strängen text vilket är 13.

2. Få åtkomst till tecken – at()

I allmänhet kan vi komma åt tecknet i en sträng med hjälp av [] array subscript operator och indexering. Men std::string har också en funktion som heter på() som kan användas för att komma åt strängens tecken.

Syntax

string_object. at( index );>

Parametrar

    index: Det representerar tecknets position i strängen.

Returvärde

  • Denna funktion returnerar tecknet som finns vid index.

Exempel

std::string str = 'GEEKSFORGEEKS'; std::cout << str.at(3);>

Std::cout kommer att skriva ut K på konsolen eftersom det är tecknet som finns i index 3.

3. Sammanfoga strängar – append() eller + Operator

Vi kan sammanfoga strängar i C++ med två metoder:

1. + Operatör

Operatorn + är överbelastad i klassen std::string för att utföra strängsammansättning.

Syntax

string_object1 + string_object2>

Exempel

std::string firstName = 'Geeks'; std::string lastName = 'forGeeks'; std::string fullName = firstName + ' ' + lastName;>

+ operator används för att sammanfoga två strängar. Strängen fullName kommer att vara techcodeview.com.

2. append()

Funktionen append() är en annan medlemsfunktion för att sammanfoga två strängar.

Syntax

string_object1. append ( string2 )>

Parametrar

    string2: Denna funktion tar strängen som ska läggas till som en parameter. Det kan vara både C eller C++ Style sträng.

Returvärde

  • Referens till den sista strängen.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string>

Funktionen append() lägger till en sträng i slutet av en annan.

4. String Comparison – compare() eller == Operator

Precis som sammanlänkningen kan vi göra strängjämförelsen med två metoder:

1. == Operatör

Likhetsoperatorn kan användas för att jämföra de två strängarna eftersom den är överbelastad för denna operation i klassen std::string.

Syntax

string_object1 == string_object2>

Detta kommer tillbaka Sann om båda strängarna är lika, annars returneras falsk.

Exempel

std::string str1 = 'apple'; std::string str2 = 'banana'; if (str1 == str2) { std::cout << 'Strings are equal'; } else { std::cout << 'Strings are not equal'; }>

Här kommer strängar som inte är lika att skrivas ut eftersom operatorn == kommer tillbaka falsk.

2. jämför()

Compare()-funktionen är en medlemsfunktion i klassen std::string som kan användas för att jämföra två strängar.

Syntax

str1. compare( str2 );>

Parametrar

    str2: Det är strängen som ska jämföras. Det kan vara både C eller C++ stil sträng.

Returvärde

  • Om strängarna är lika, återvänd noll.
  • Om str1 är större än str2, returnera värde >0
  • Om str2 är större än str1, returnera värdet <0

Exempel

string str1 = 'Geeks'; string str2: = 'Geeksfor'; int result = str1. compare (str2);>

Resultatet kommer att innehålla ett värde mindre än noll eftersom str2 är större än str1.

Vi kan också jämföra delsträngen för str2 med jämförelsefunktionen():

str1.compare(position, length, str2);>

var,

    position : positionen för den första teckendelsträngen. längd: längden på delsträngen. str2: Strängobjekt som ska jämföras.

5. Sökning – find()

Vi kan använda hitta() funktion för klassen std::string för att kontrollera om ett givet tecken eller en delsträng finns i strängen eller en del av strängen.

Syntax för find()

str1.find(var);>

Parametrar

    var: Det kan vara en C-stilsträng, C++-stilsträng eller ett tecken som ska sökas i strängen.

Returvärde

  • Den returnerar pekaren till den första förekomsten av tecknet eller en delsträng i strängen.

Exempel

std::string text = 'C++ Programming'; int position = text.find('Programming'); // Find the position of a substring>

Positionsvariabeln kommer att innehålla 4 som är början på den första förekomsten av strängen Programmering i strängtext.

6. Generera delsträng – substr()

Vi kan använda substr() funktion för att generera en del av strängen som ett nytt strängobjekt. Det är en medlemsfunktion i klassen std::string.

Syntax för substr() i C

str1. substr ( start, end );>

Parametrar

    start: Startposition för delsträngen som ska genereras. end: Slut på delsträngen som ska genereras.

Returtyp

  • Det returnerar det nyskapade strängobjektet.

Exempel

std::string text = 'Hello, World!'; std::string sub = text.substr(7, 5); // Extract 'World'>

I exemplet ovan. de sub sträng kommer att innehålla världen.

Ändra strängar

Följande funktion låter oss ändra den aktuella strängen.

1. infoga()

Funktionen insert() låter oss inte bara lägga till en sträng utan låter oss också lägga till den på den angivna positionen. Det är också en medlemsfunktion i klassen std::string.

Syntax

str1. insert (index, str2);>

Parametrar

    str2: sträng som ska infogas. index: positionen för var den nya strängen ska infogas

Returtyp

  • Referens till str1.

Exempel

std::string text = 'I have a cat.'; text.insert(9, ' black'); // Insert ' black' at position 9>

2. ersätt()

Funktionen replace() ersätter delen av strängen med den givna andra strängen. Till skillnad från insert tas tecknen i den del där den nya strängen ska infogas bort.

Syntax

str1. replace ( index, size, str2 );>

Parametrar

    index: Index över var man ska börja ersätta den nya strängen. storlek: längden på den del av strängen som ska bytas ut. str2: ny sträng som ska infogas.

Returtyp

  • Referens till str1.

Exempel

std::string text = 'I like dogs.'; text.replace(7, 4, 'cats'); // Replace 'dogs' with 'cats'>

3. radera()

Erase()-funktionen är en medlemsfunktion i klassen std::string som används för att ta bort ett tecken eller en del av strängen.

Syntax

str1 .erase( start, end);>

Parametrar

    start: Startposition. slut: Slutläge.

Returtyp

  • Referens till str1.

Exempel

std::string text = 'This is an example.'; text.erase(5, 3); // Erase 'is '>

Konvertera std::string till C String – c_str)_

Funktionen c_str() är en medlemsfunktion som används för att konvertera C++-stilsträngen, dvs. std::string-objekt, till C-stilsträng, dvs. en array av tecken.

25 c till k

Syntax

str1.c_str()>

Parametrar

  • Denna funktion tar inte någon parameter.

Returvärde

  • Pekare till motsvarande teckenuppsättning.

Exempel

std::string str = 'C++'; const char* cstr = str.c_str()>

Exempel på strängfunktioner i C++

Nedanstående kod visar användningen av ovan angivna strängfunktioner:

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>> namn;> >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;> }>

>

>

Produktion

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