Alles wat u moet weten over strings in C ++



Dit artikel geeft u een gedetailleerde en uitgebreide kennis van strings in C ++ en geeft ook voorbeelden van verschillende bewerkingen.

De voorwaarde betekent een geordende reeks karakters. Een reeks tekens kan worden weergegeven met behulp van een object van een klasse in C ++. De klasse die hiervoor een definitie geeft, wordt een String-klasse genoemd. String-klasse slaat de tekens op als een reeks bytes met de functionaliteit om toegang te verlenen tot het enkele byte-teken. In C ++ zijn de omsluitende scheidingstekens dubbele aanhalingstekens. In dit 'Strings in C ++' -artikel bespreek ik de volgende onderwerpen:

Verschil tussen tekenreeksklasse en tekenreeks

String klasse Character Array
String-klasse is een klasse die objecten definieert die kunnen worden weergegeven als een stroom tekensCharacter array is gewoon een array van karakters.
In het geval van strings wordt het geheugen dynamisch toegewezen, zodat er meer geheugen kan worden toegewezen tijdens runtime op aanvraagDe grootte van de tekenreeks moet statisch worden toegewezen, dus indien nodig kan tijdens runtime niet meer geheugen worden toegewezen
String-klasse definieert een aantal functionaliteiten die veelvoudige bewerkingen op strings mogelijk maken.Character array biedt niet veel ingebouwde functies om strings te manipuleren
Strings zijn langzamer in vergelijking met implementatie dan de tekenreeks.Implementatie van een character array is sneller.

Declareer en initialiseer een strings in C ++

strings-in-c++Initialisatie van string in C ++ is vrij eenvoudig !. We kunnen een van de volgende methoden gebruiken.





met behulp van de naamruimte std string std_string

of

db-browser voor SQLite-beoordeling
std :: string std_string
#include using namespace std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Hallo door st' std :: string std_st = 'Hallo door std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Uitgang:



Hallo door ch Hallo door st Hallo door std_st

In dit voorbeeld hebben we zowel de character array (ch) als de string cl getoondass (st en std_st) initialisatiemethoden. Ten eerste hebben we de character array-methode gebruikt door een character array ch [12] te definiëren die 12 elementen bevat en eindigt met een null-teken. In het tweede deel hebben we een string class-methode gebruikt.

Bewerkingen op strings in C ++

Het voordeel van het gebruik van string class is dat er verschillende ingebouwde functies in C ++ zijn om ze te manipuleren. Dit maakt programmeren eenvoudig en effectief. Laten we enkele belangrijke snaarmanipulatiefuncties bespreken en ze begrijpen door naar enkele voorbeelden te kijken.

String Maat: Zowel size () als length () methoden kunnen worden gebruikt om de grootte van het object te retourneren.



kosten<< st.length() <

Uitgang:

dubbel converteren naar int java
11 11

String aaneenschakeling: We kunnen twee of meer strings aaneenschakelen door simpelweg de + operator ertussen te gebruiken

string new_string = st + 'en' + std_st cout<< new_string <

Uitgang:

Hallo door st en Hallo door std_st

Strings toevoegen: De .append (string) class member-functie kan worden gebruikt om een ​​string samen te voegen en toe te voegen op een specifieke karakterlocatie in de string. Als een programmeur str.append (str1, p, n) plaatst, dan betekent dit dat n aantal karakters vanaf positie p in string str1 zal worden toegevoegd aan het einde van de str.

string str = 'Ik leer graag' string str1 = 'Python, C ++ of C' str.append (str1, 8, 3) cout<< str << endl

Uitgang:

Ik leer graag C ++

Strings zoeken: We kunnen de functie find () lid gebruiken om het eerste voorkomen van een tekenreeks in een andere tekenreeks te vinden. find () zoekt naar de stringnaald in de hooiberg, beginnend vanuit positie pos en retourneert de positie van de eerste keer dat de naald voorkomt. De functie rfind () werkt op dezelfde manier, behalve dat het de laatste keer dat de doorgegeven string voorkomt teruggeeft.

string haystack = 'Hallo wereld!' string naald = 'o' cout<< haystack.find(needle)<

Uitgang:

4 4 7 4294967295

Het eerste cout-commando zal gewoon '4' afdrukken, wat de index is van het eerste voorkomen van 'o' in de hooibergstring. Als we de 'o' in 'World' willen, moeten we 'pos' zo aanpassen dat deze voorbij het eerste voorkomen wijst. haystack.find (naald, 4) zou opnieuw 4 retourneren, terwijl haystack.find (naald, 5) 7 zou geven. Als de substring niet wordt gevonden, geeft find () std :: string :: npos terug.

Npos is een speciale waarde die gelijk is aan de maximale waarde die kan worden weergegeven door het type size_type. Hier is het 4294967295. Over het algemeen wordt het gebruikt als indicator voor het einde van de string door de functies die een stringindex verwachten, of als de foutindicator door de functies die een stringindex retourneren.

Deze eenvoudige code zoekt een string voor alle exemplaren van 'C ++' in str2 en drukt hun posities af:

string str2 = 'C ++ is een objectgeoriënteerde programmeertaal en omvat klassen, overerving, polymorfisme, data-abstractie en inkapseling. C ++ maakt het afhandelen van uitzonderingen en overbelasting van functies mogelijk die niet mogelijk zijn in C.C ++ is een krachtige, efficiënte en snelle taal. ' for (string :: size_type i = 0, tfind (tfind = wikistr.find ('C ++', i))! = string :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

Uitgang:

Gevonden voorkomen van 'C ++' op positie 0 Gevonden voorkomen van 'C ++' op positie 132 Gevonden voorkomen van 'C ++' op positie 217
#include met behulp van naamruimte std class base {public: void fun_1 () {cout<< 'base class function 1n' } virtual void fun_2() { cout << 'base class function 2n' } virtual void fun_3() { cout << 'base class function 3n' } virtual void fun_4() { cout << 'base class function 4n' } } class derived : public base { public: void fun_1() { cout << 'derived class function 1n' } void fun_2() { cout << 'derived class function 2n' } void fun_4(int x) { cout fun_2 () // Late binding (RTP) ptr-> fun_3 () // Late binding (RTP) ptr-> fun_4 () // Vroege binding maar deze functieaanroep is // illegaal (geeft een foutmelding) omdat pointer // is van het basistype en de functie is van // afgeleide klasse // p-> fun_4 (5)}

Uitgang:

basisklasse functie 1 afgeleide klasse functie 2 basisklasse functie 3 basisklasse functie 4

Hiermee komen we een einde aan dit artikel over strings in C ++. Ik hoop dat je inzicht hebt gekregen in de verschillende bewerkingen die erop kunnen worden uitgevoerd. Als je meer wilt weten, bekijk dan de Java Training van Edureka, een vertrouwd online leerbedrijf. Edureka's trainings- en certificatiecursussen zijn ontworpen om u te trainen voor zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

hoe je een nummer in python omkeert

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.