logo

Tekenreeksfuncties in C++

Een string wordt een array van karakters genoemd. In C++ wordt een stroom/reeks tekens opgeslagen in een char-array. C++ bevat de klasse std::string die wordt gebruikt om tekenreeksen weer te geven. Het is een van de meest fundamentele datatypes in C++ en wordt geleverd met een groot aantal ingebouwde functies. In dit artikel zullen we kijken naar de functies van stringberekeningen.

Wat is std::string?

De std::string is een klasse in C++ sinds C++98. Deze klasse is de standaardweergave voor een tekststring. Het bevat enkele typische tekenreeksbewerkingen zoals zoeken, vervangen, aaneenschakelen, vergelijken enz. Het is aanwezig in header-bestand.



Verklaring en initialisatie van string

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

Veelgebruikte tekenreeksfuncties in C++

De klasse std::string bevat functies die enkele algemene tekenreeksbewerkingen mogelijk maken. De onderstaande tabel bevat enkele van de meest gebruikte functies in C++:

Ja nee.

Categorie



Functies en operators

Functionaliteit

1.



pad ingesteld in Java
Draadlengte

lengte() of maat()

Het retourneert de lengte van de string.

2.

Toegang tot tekens

Indexeren (met behulp van array[index])

Voor toegang tot individuele tekens met behulp van array-indexering.

bij()

Wordt gebruikt om toegang te krijgen tot een teken op een opgegeven index.

3.

Tekenreeksen toevoegen en samenvoegen

+ Exploitant

+ operator wordt gebruikt om twee strings samen te voegen.

toevoegen()

De functie append() voegt de ene tekenreeks toe aan het einde van de andere.

4.

String-vergelijking

== Operator

U kunt tekenreeksen vergelijken met de operator ==.

vergelijken()

De functie Compare() retourneert een geheel getal dat het vergelijkingsresultaat aangeeft.

5.

Subtekenreeksen

substr()

Gebruik de functie substr() om een ​​subtekenreeks uit een tekenreeks te extraheren.

6.

Zoeken

vinden()

De functie find() retourneert de positie van de eerste keer dat een subtekenreeks voorkomt.

7.

Tekenreeksen wijzigen

vervangen()

Gebruik de functie Replace() om een ​​deel van de tekenreeks te wijzigen.

invoegen()

De functie insert() voegt een subtekenreeks toe op een opgegeven positie.

wissen()

Gebruik de functie erase() om een ​​deel van de tekenreeks te verwijderen.

8.

Conversie

c_str()

Om een ​​string in C-stijl te verkrijgen uit een std::string, kun je de functie c_str() gebruiken.

Opmerking: De bovenstaande functies werken alleen voor tekenreeksen in C++-stijl (std::string-objecten) en niet voor tekenreeksen in C-stijl (reeks tekens).

1. Tekenreekslengte – lengte() of maat()

We kunnen de lengte van de string (aantal tekens) vinden met behulp van een van beide lengte() of maat() functie van de klasse std::string.

Syntaxis

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

Parameters

  • Deze functie gebruikt geen enkele parameter.

Winstwaarde

  • Deze functie retourneert het aantal tekens in het stringobject.

Voorbeeld

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

Het retourneert de lengte van de string tekst dat is 13.

2. Toegang tot tekens – at()

Over het algemeen hebben we toegang tot het karakter van een string met behulp van de [] array-subscriptoperator en indexering. Maar std::string heeft ook een functie met de naam bij() die kan worden gebruikt om toegang te krijgen tot de karakters van de string.

Syntaxis

string_object. at( index );>

Parameters

    index: Het vertegenwoordigt de positie van het teken in de string.

Winstwaarde

  • Deze functie retourneert het teken dat aanwezig is op de inhoudsopgave.

Voorbeeld

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

De std::cout zal K op de console afdrukken omdat dit het teken is dat aanwezig is in index 3.

3. Tekenreeksen aaneenschakelen – append() of + Operator

We kunnen string in C++ samenvoegen met behulp van twee methoden:

1. + Operator

De operator + is overbelast in de std::string-klasse om tekenreeksaaneenschakeling uit te voeren.

Syntaxis

string_object1 + string_object2>

Voorbeeld

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

+ operator wordt gebruikt om twee strings samen te voegen. De tekenreeks volledige naam is techcodeview.com.

2. toevoegen()

De functie append() is een andere lidfunctie om twee tekenreeksen aan elkaar te koppelen.

Syntaxis

string_object1. append ( string2 )>

Parameters

    string2: Deze functie gebruikt de string die als parameter moet worden toegevoegd. Het kan zowel een C- als een C++-stijlreeks zijn.

Winstwaarde

  • Verwijzing naar de laatste string.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string>

De functie append() voegt de ene tekenreeks toe aan het einde van de andere.

4. Tekenreeksvergelijking – Compare() of == Operator

Net als bij de aaneenschakeling kunnen we de tekenreeksvergelijking op twee manieren uitvoeren:

1. == Operator

De gelijkheidsoperator kan worden gebruikt om de twee tekenreeksen te vergelijken, aangezien deze voor deze bewerking in de klasse std::string overbelast is.

Syntaxis

string_object1 == string_object2>

Dit zal terugkeren WAAR als beide tekenreeksen gelijk zijn, wordt anders geretourneerd vals.

Voorbeeld

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

Hier wordt Strings zijn niet gelijk afgedrukt omdat de operator == terugkeert vals.

2. vergelijk()

De functie Compare() is een lidfunctie van de klasse std::string die kan worden gebruikt om twee strings te vergelijken.

Syntaxis

str1. compare( str2 );>

Parameters

    str2: Het is de string die moet worden vergeleken. Het kan zowel een tekenreeks in C- als in C++-stijl zijn.

Winstwaarde

  • Als de tekenreeksen gelijk zijn, retourneert u nul.
  • Als str1 groter is dan str2, retourneert u de waarde >0
  • Als str2 groter is dan str1, retourneert u de waarde <0

Voorbeeld

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

Het resultaat bevat een waarde kleiner dan nul omdat str2 groter is dan str1.

We kunnen de substring van str2 ook vergelijken met behulp van de vergelijkingsfunctie():

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

waar,

    position : positie van de eerste tekenreeks. lengte: lengte van de subtekenreeks. str2: String-object dat moet worden vergeleken.

5. Zoeken – vind()

Wij kunnen gebruik maken van de vinden() functie van de klasse std::string om te controleren of een bepaald teken of een substring aanwezig is in de string of een deel van de string.

Syntaxis van find()

str1.find(var);>

Parameters

    var: Het kan een tekenreeks in C-stijl, een tekenreeks in C++-stijl of een teken zijn dat in de tekenreeks moet worden doorzocht.

Winstwaarde

  • Het retourneert de aanwijzer naar de eerste keer dat het teken of een subtekenreeks in de tekenreeks voorkomt.

Voorbeeld

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

De positievariabele bevat 4, wat het begin is van de eerste keer dat de string Programmering in stringtekst voorkomt.

6. Substring genereren – substr()

Wij kunnen gebruik maken van de substr()-functie om een ​​deel van de string als een nieuw stringobject te genereren. Het is een lidfunctie van de klasse std::string.

Syntaxis van substr() in C

str1. substr ( start, end );>

Parameters

Python-lijst initialiseren
    start: Startpositie van de te genereren substring. end: Einde van de te genereren substring.

Retourtype

  • Het retourneert het nieuw gemaakte stringobject.

Voorbeeld

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

In het bovenstaande voorbeeld. de sub string bevat de wereld.

Tekenreeksen wijzigen

Met de volgende functie kunnen we de huidige string wijzigen.

1. invoegen()

Met de functie insert() kunnen we niet alleen een string toevoegen, maar deze ook op de opgegeven positie toevoegen. Het is ook een lidfunctie van de klasse std::string.

Syntaxis

str1. insert (index, str2);>

Parameters

    str2: tekenreeks die moet worden ingevoegd. index: positie waar de nieuwe string moet worden ingevoegd

Retourtype

  • Verwijzing naar de str1.

Voorbeeld

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

2. vervangen()

De functie Replace() vervangt het deel van de string door de gegeven andere string. In tegenstelling tot invoegen worden de tekens in het gedeelte waar de nieuwe string moet worden ingevoegd, verwijderd.

Syntaxis

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

Parameters

    index: Index van waar u moet beginnen met het vervangen van de nieuwe string. maat: lengte van het deel van de snaar dat vervangen moet worden. str2: nieuwe string die moet worden ingevoegd.

Retourtype

  • Verwijzing naar de str1.

Voorbeeld

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

3. wissen()

De functie erase() is een lidfunctie van de klasse std::string die wordt gebruikt om een ​​teken of een deel van de tekenreeks te verwijderen.

Syntaxis

str1 .erase( start, end);>

Parameters

    start: startpositie. einde: Eindpositie.

Retourtype

  • Verwijzing naar de str1.

Voorbeeld

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

Converteer std::string naar C String – c_str)_

De c_str() functie is een lidfunctie die wordt gebruikt om de tekenreeks in C++-stijl, d.w.z. std::string-objecten, te converteren naar een tekenreeks in C++-stijl, d.w.z. een reeks tekens.

Syntaxis

str1.c_str()>

Parameters

  • Deze functie gebruikt geen enkele parameter.

Winstwaarde

  • Verwijzing naar de equivalente reeks tekens.

Voorbeeld

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

Voorbeeld van tekenreeksfuncties in C++

De onderstaande code demonstreert het gebruik van de hierboven gespecificeerde stringfuncties:

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

>

>

Uitvoer

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