logo

Virkņu funkcijas programmā C++

Virkne tiek saukta par rakstzīmju masīvu. Programmā C++ rakstzīmju straume/secība tiek saglabāta char masīvā. C++ ietver std::string klasi, ko izmanto, lai attēlotu virknes. Tas ir viens no vissvarīgākajiem C++ datu tipiem, un tam ir milzīgs iebūvēto funkciju kopums. Šajā rakstā tiks apskatītas virkņu aprēķinu funkcijas.

Kas ir std::string?

Std::string ir klase valodā C++ kopš C++98. Šī klase ir teksta virknes standarta attēlojums. Tas ietver dažas tipiskas virkņu darbības, piemēram, atrašanu, aizstāšanu, savienošanu, salīdzināšanu utt. Tā ir pieejama galvenes fails.



Virknes deklarēšana un inicializācija

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

Bieži lietotās virkņu funkcijas programmā C++

Klase std::string satur funkcijas, kas nodrošina dažas izplatītas virknes darbības. Zemāk esošajā tabulā ir dažas no visbiežāk izmantotajām C++ funkcijām:

Jā nē.

Kategorija



Funkcijas un operatori

Funkcionalitāte

1.



no rakstzīmes uz int java
Stīgas garums

garums () vai izmērs ()

Tas atgriezīs virknes garumu.

2.

Piekļuve rakstzīmēm

Indeksēšana (izmantojot masīvu[index])

Lai piekļūtu atsevišķām rakstzīmēm, izmantojot masīva indeksēšanu.

at ()

Izmanto, lai piekļūtu rakstzīmei noteiktā rādītājā.

3.

Virkņu pievienošana un savienošana

+ operators

+ operators tiek izmantots, lai savienotu divas virknes.

pievienot ()

Funkcija append() pievieno vienu virkni citas beigām.

4.

Stīgu salīdzinājums

== Operators

Virknes var salīdzināt, izmantojot operatoru ==.

salīdzināt()

Funkcija salīdzināt () atgriež vesela skaitļa vērtību, kas norāda salīdzināšanas rezultātu.

5.

Apakšvirknes

substr()

Izmantojiet funkciju substr(), lai no virknes izvilktu apakšvirkni.

6.

Meklēšana

atrast ()

Funkcija find() atgriež apakšvirknes pirmās gadījuma pozīciju.

7.

Stīgu modificēšana

aizvietot()

Izmantojiet funkciju aizstāt(), lai mainītu virknes daļu.

ievietot ()

Funkcija insert() pievieno apakšvirkni noteiktā vietā.

dzēst ()

Izmantojiet funkciju erase(), lai noņemtu daļu no virknes.

8.

Pārvēršana

c_str()

Lai iegūtu C stila virkni no std::string, varat izmantot funkciju c_str().

Piezīme: Iepriekš minētās funkcijas darbojas tikai C++ stila virknēm (std::string objektiem), nevis C stila virknēm (rakstzīmju masīvs).

1. String Length — garums() vai izmērs()

Mēs varam atrast virknes garumu (rakstzīmju skaitu), izmantojot vienu vai otru garums () vai izmērs () std::string klases funkcija.

Sintakse

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

Parametri

  • Šī funkcija neņem nekādus parametrus.

Atdeves vērtība

  • Šī funkcija atgriež rakstzīmju skaitu virknes objektā.

Piemērs

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

Tas atgriezīs virknes garumu tekstu kas ir 13.

2. Piekļuve rakstzīmēm — at()

Parasti mēs varam piekļūt virknes rakstzīmei, izmantojot [] masīva apakšindeksa operators un indeksācija. Bet std::string ir arī funkcija ar nosaukumu at () ko var izmantot, lai piekļūtu virknes rakstzīmēm.

Sintakse

string_object. at( index );>

Parametri

    indekss: tas attēlo rakstzīmes pozīciju virknē.

Atdeves vērtība

  • Šī funkcija atgriež rakstzīmi, kas atrodas pie rādītājs.

Piemērs

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

std::cout konsolē izdrukās K, jo tā ir 3. rādītājā esošā rakstzīme.

3. Virkņu savienošana – append() vai + Operator

Mēs varam savienot virkni C++, izmantojot divas metodes:

1. + Operators

Operators + ir pārslogots klasē std::string, lai veiktu virkņu savienošanu.

Sintakse

string_object1 + string_object2>

Piemērs

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

+ operators tiek izmantots, lai savienotu divas virknes. Virkne fullName būs techcodeview.com.

2. pievienot ()

Funkcija append() ir vēl viena dalībnieka funkcija divu virkņu savienošanai.

Sintakse

string_object1. append ( string2 )>

Parametri

    string2: šī funkcija izmanto virkni, kas jāpievieno kā parametrs. Tā var būt gan C, gan C++ stila virkne.

Atdeves vērtība

  • Atsauce uz pēdējo virkni.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string>

Funkcija append() pievieno vienu virkni citas beigām.

4. String Comparison – salīdzināt() vai == Operator

Tāpat kā savienošanu, mēs varam veikt virkņu salīdzināšanu, izmantojot divas metodes:

1. == Operators

Vienlīdzības operatoru var izmantot, lai salīdzinātu divas virknes, jo tas ir pārslogots šai darbībai klasē std::string.

Sintakse

string_object1 == string_object2>

Tas atgriezīsies taisnība ja abas virknes ir vienādas, pretējā gadījumā atgriež viltus.

Piemērs

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

Šeit tiks izdrukāts virknes nav vienādas, jo atgriezīsies operators == viltus.

2. salīdzināt ()

Funkcija salīdzināt () ir std::string klases dalībfunkcija, ko var izmantot, lai salīdzinātu divas virknes.

Sintakse

str1. compare( str2 );>

Parametri

    str2: tā ir salīdzināmā virkne. Tā var būt gan C, gan C++ stila virkne.

Atdeves vērtība

  • Ja virknes ir vienādas, atgriezieties nulle.
  • Ja str1 ir lielāks par str2, atgriež vērtību >0
  • Ja str2 ir lielāks par str1, atgriež vērtību <0

Piemērs

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

Rezultātā būs vērtība, kas mazāka par nulli, jo str2 ir lielāka par str1.

Mēs varam arī salīdzināt str2 apakšvirkni, izmantojot salīdzināšanas funkciju ():

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

kur,

    pozīcija : pirmās rakstzīmju apakšvirknes pozīcija. garums: apakšvirknes garums. str2: salīdzināmais virknes objekts.

5. Meklēšana — atrast()

Mēs varam izmantot atrast () std::string klases funkcija, lai pārbaudītu, vai virknē vai virknes daļā ir norādīta rakstzīme vai apakšvirkne.

Find() sintakse

str1.find(var);>

Parametri

    var: tā var būt C stila virkne, C++ stila virkne vai rakstzīme, kas jāmeklē virknē.

Atdeves vērtība

  • Tas atgriež rādītāju uz rakstzīmes vai apakšvirknes pirmo reizi virknē.

Piemērs

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

Pozīcijas mainīgais saturs 4, kas ir pirmās virknes programmēšanas gadījuma sākums virknes tekstā.

6. Ģenerējiet apakšvirkni — substr()

Mēs varam izmantot substr() funkcija lai ģenerētu daļu no virknes kā jaunu virknes objektu. Tā ir std::string klases dalībnieka funkcija.

Substr() sintakse valodā C

str1. substr ( start, end );>

Parametri

    sākums: ģenerējamās apakšvirknes sākuma pozīcija. beigas: ģenerējamās apakšvirknes beigas.

Atgriešanas veids

  • Tas atgriež jaunizveidoto virknes objektu.

Piemērs

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

Iepriekš minētajā piemērā. uz apakš virknē būs pasaule.

Stīgu modificēšana

Šī funkcija ļauj mums modificēt pašreizējo virkni.

1. ievietot()

Funkcija insert () ļauj mums ne tikai pievienot virkni, bet arī ļauj mums to pievienot norādītajā vietā. Tā ir arī std::string klases dalībnieka funkcija.

Sintakse

str1. insert (index, str2);>

Parametri

    str2: ievietojama virkne. indekss: vieta, kur ievietot jauno virkni

Atgriešanas veids

  • Atsauce uz str1.

Piemērs

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

2. aizstāt()

Funkcija aizstāt () aizstāj virknes daļu ar doto citu virkni. Atšķirībā no ievietošanas, rakstzīmes daļā, kurā jāievieto jaunā virkne, tiek noņemtas.

Sintakse

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

Parametri

    indekss: rādītājs, kur sākt jaunās virknes aizstāšanu. izmērs: nomaināmās virknes daļas garums. str2: jauna virkne, kas jāievieto.

Atgriešanas veids

  • Atsauce uz str1.

Piemērs

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

3. dzēst()

Funkcija erase() ir std::string klases dalībnieka funkcija, ko izmanto, lai noņemtu rakstzīmi vai virknes daļu.

Sintakse

str1 .erase( start, end);>

Parametri

    sākums: sākuma pozīcija. beigas: beigu pozīcija.

Atgriešanas veids

  • Atsauce uz str1.

Piemērs

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

Pārvērst std::string par C virkni – c_str)_

Funkcija c_str () ir dalībnieka funkcija, ko izmanto, lai pārveidotu C++ stila virkni, t.i., std::string objektus par C stila virkni, t.i., rakstzīmju masīvu.

Sintakse

str1.c_str()>

Parametri

  • Šī funkcija neņem nekādus parametrus.

Atdeves vērtība

  • Norādiet uz līdzvērtīgu rakstzīmju masīvu.

Piemērs

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

Virkņu funkciju piemērs programmā C++

Tālāk norādītais kods parāda iepriekš norādīto virkņu funkciju izmantošanu:

C++




np polsterējums
// 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>> vārds;>> 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;> }>

>

>

Izvade

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