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. |
| Funkcija append() pievieno vienu virkni citas beigām. | |||
| 4. | Stīgu salīdzinājums | == Operators | Virknes var salīdzināt, izmantojot operatoru ==. |
| Funkcija salīdzināt () atgriež vesela skaitļa vērtību, kas norāda salīdzināšanas rezultātu. | |||
| 5. | Apakšvirknes | Izmantojiet funkciju substr(), lai no virknes izvilktu apakšvirkni. | |
| 6. | Meklēšana | 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;>> > >// 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++>