C++ virknes ir rakstzīmju virknes, kas saglabātas char masīvā. Virknes tiek izmantotas vārdu un teksta glabāšanai. Tos izmanto arī datu, piemēram, skaitļu un cita veida informācijas, glabāšanai. C++ virknes var definēt, izmantojot std::string klase vai C stila rakstzīmju masīvi.

1. C stila stīgas
Šīs virknes tiek saglabātas kā vienkāršs vecais rakstzīmju masīvs, ko beidz ar a nulles rakstzīme “ ” . Tie ir virkņu veids, ko C++ mantojis no C valodas.
Sintakse:
char str[] = 'techcodeview.com';>
Piemērs:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Izvade
techcodeview.com>
2. std::string Klase
Šie ir jauni virkņu veidi, kas tiek ieviesti C++ kā std::string klase, kas definēta galvenes failā. Tas nodrošina daudzas priekšrocības salīdzinājumā ar parastajām C stila virknēm, piemēram, dinamisko izmēru, dalībnieku funkcijas utt.
Sintakse:
std::string str('techcodeview.com');> Piemērs:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Izvade
techcodeview.com>
Vēl viens veids, kā mēs varam izveidot virknes, kurām ir viena un tā pati rakstzīme, kas atkārtojas atkal un atkal.
Sintakse:
std::string str(number,character);>
Piemērs:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Izvade:
ggggg>
Veidi, kā definēt virkni programmā C++
C++ virknes var definēt vairākos veidos. Virknēm var piekļūt no standarta bibliotēkas, izmantojot virkņu klasi. Rakstzīmju masīvus var izmantot arī, lai definētu virknes. String nodrošina bagātīgu funkciju kopumu, piemēram, meklēšanu un manipulēšanu, kas ir plaši izmantotas metodes. Neskatoties uz to, ka šī metode ir mazāk attīstīta nekā virkņu klase, šī metode joprojām tiek plaši izmantota, jo tā ir efektīvāka un vieglāk lietojama. Veidi, kā definēt virkni C++, ir šādi:
- Izmantojot virknes atslēgvārdu
- Izmantojot C stila stīgas
1. Izmantojot virkni Atslēgvārdu
Ērtāk ir definēt virkni ar virknes atslēgvārdu, nevis izmantot masīva atslēgvārdu, jo to ir viegli rakstīt un saprast.
Sintakse:
string s = 'techcodeview.com'; string s('techcodeview.com');> Piemērs:
C++
// C++ Program to demonstrate use of string keyword> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >string str(>'techcodeview.com'>);> >cout <<>'s = '> << s << endl;> >cout <<>'str = '> << str << endl;> >return> 0;> }> |
>
>Izvade
s = techcodeview.com str = techcodeview.com>
2. Izmantojot C stila virknes
Virkņu definēšanai izmantojiet C stila virkņu bibliotēkas funkcijas, piemēram, strcpy(), strcmp() un strcat(). Šī metode ir sarežģītāka un nav tik plaši izmantota kā pārējās divas, taču tā var būt noderīga, strādājot ar mantoto kodu vai ja nepieciešama veiktspēja.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> Piemērs:
C++
// C++ Program to demonstrate C-style string declaration> #include> using> namespace> std;> int> main()> {> >char> s1[] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s2[4] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s3[4] =>'gfg'>;> >char> s4[] =>'gfg'>;> >cout <<>'s1 = '> << s1 << endl;> >cout <<>'s2 = '> << s2 << endl;> >cout <<>'s3 = '> << s3 << endl;> >cout <<>'s4 = '> << s4 << endl;> >return> 0;> }> |
>
>Izvade
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Vēl viens C stila virknes piemērs:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Izvade
Your string is= Geeeks for Geeks>
Kā veikt virknes ievadi programmā C++
Virknes ievade nozīmē virknes pieņemšanu no lietotāja. Programmā C++. Mums ir dažādi lietotāja ievades veidi, kas ir atkarīgi no virknes. Visizplatītākais veids ir saņemt ievadi ar ēšana atslēgvārds ar ekstrakcijas operatoru (>>) C++ valodā. Metodes, kā izmantot virkni kā ievadi, ir šādas:
- ēšana
- getline
- stringstream
1. Izmantojot Cin
Vienkāršākais veids, kā iegūt virknes ievadi, ir izmantot ēšana komandu kopā ar straumes ekstrakcijas operatoru (>>).
Sintakse:
cin>>s;>
Piemērs:
C++
java šķirošanas saraksts
// C++ Program to demonstrate string input using cin> #include> using> namespace> std;> int> main() {> >string s;> > >cout<<>'Enter String'>< cin>>s; cout<<'String is: '< return 0; }> |
>
>Izvade
Enter String String is:>
Izvade:
Enter String techcodeview.com String is: techcodeview.com>
2. Getline izmantošana
The getline() funkcija C++ tiek izmantots, lai nolasītu virkni no ievades straumes. Tas ir deklarēts galvenes failā.
Sintakse:
getline(cin,s);>
Piemērs:
C++
// C++ Program to demonstrate use of getline function> #include> using> namespace> std;> int> main()> {> >string s;> >cout <<>'Enter String'> << endl;> >getline(cin, s);> >cout <<>'String is: '> << s << endl;> >return> 0;> }> |
>
>Izvade
Enter String String is:>
Izvade:
Enter String techcodeview.com String is: techcodeview.com>
3. Stringstream izmantošana
The stringstream klasē C++ tiek izmantots, lai vienlaikus ņemtu vairākas virknes kā ievadi.
Sintakse:
stringstream stringstream_object(string_name);>
Piemērs:
C++
// C++ Program to demonstrate use of stringstream object> #include> #include> #include> using> namespace> std;> int> main()> {> >string s =>' techcodeview.com to the Moon '>;> >stringstream obj(s);> >// string to store words individually> >string temp;> >//>> operators lasīs no stringstream objekta> >while> (obj>> temp) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Izvade
techcodeview.com to the Moon>
Kā nodot virknes funkcijām?
Tādā pašā veidā, kā mēs nododam masīvu funkcijai, C++ virknes var nodot funkcijām kā rakstzīmju masīvus. Šeit ir programmas piemērs:
Piemērs:
C++
// C++ Program to print string using function> #include> using> namespace> std;> void> print_string(string s)> {> >cout <<>'Passed String is: '> << s << endl;> >return>;> }> int> main()> {> >string s =>'techcodeview.com'>;> >print_string(s);> >return> 0;> }> |
>
>Izvade
Passed String is: techcodeview.com>
Rādītāji un virknes
Rādītāji C++ ir simboliski adrešu attēlojumi. Tie ļauj programmām simulēt zvanu pēc atsauces, kā arī izveidot un manipulēt ar dinamiskām datu struktūrām. Izmantojot norādes, mēs varam iegūt virknes pirmo rakstzīmi, kas ir virknes sākuma adrese. Kā parādīts zemāk, dotajai virknei var piekļūt un to izdrukāt, izmantojot rādītājus.
Piemērs:
C++
// C++ Program to print string using pointers> #include> using> namespace> std;> int> main()> {> >string s =>'Geeksforgeeks'>;> >// pointer variable declared to store the starting> >// address of the string> >char>* p = &s[0];> >// this loop will execute and print the character till> >// the character value is null this loop will execute and> >// print the characters> >while> (*p !=>' '>) {> >cout << *p;> >p++;> >}> >cout << endl;> >return> 0;> }> |
>
>Izvade
Geeksforgeeks>
Atšķirība starp virknes un rakstzīmju masīvu C++
Galvenā atšķirība starp virkni un rakstzīmju masīvu ir tāda, ka virknes ir nemainīgas, bet rakstzīmju masīvi nav.
| Stīga | Rakstzīmju masīvs |
|---|---|
| Virknes definē objektus, kurus var attēlot kā virkņu plūsmas. | Nulles rakstzīme beidz rakstzīmju masīvu. |
| Virknēs nenotiek masīva samazināšanās, jo virknes tiek attēlotas kā objekti. | Draudi par masīva sabrukšana ir klāt rakstzīmju masīva gadījumā |
| Virkņu klase nodrošina daudzas funkcijas, lai manipulētu ar virknēm. | Rakstzīmju masīvi nepiedāvā iebūvētas funkcijas, lai manipulētu ar virknēm. |
| Atmiņa tiek piešķirta dinamiski. | Rakstzīmju masīva lielums ir jāpiešķir statiski. |
Uzziniet vairāk par atšķirība starp virknēm un rakstzīmju masīviem C++
C++ virkņu funkcijas
C++ nodrošina dažas iebūvētas funkcijas, kas tiek izmantotas virkņu apstrādei, piemēram, strcpy () un strcat () funkcijas virkņu kopēšanai un savienošanai. Daži no tiem ir:
| Funkcija | Apraksts |
|---|---|
| garums () | Šī funkcija atgriež virknes garumu. |
| apmainīt () | Šo funkciju izmanto, lai apmainītu 2 virkņu vērtības. |
| Izmērs() | Izmanto, lai noteiktu virknes izmēru |
| mainīt izmēru () | Šo funkciju izmanto, lai mainītu virknes garumu līdz norādītajam rakstzīmju skaitam. |
| atrast () | Izmanto, lai atrastu virkni, kas tiek nodota parametros |
| atgrūst() | Šo funkciju izmanto, lai virknes beigās ievietotu nodoto rakstzīmi |
| pop_back() | Šī funkcija tiek izmantota, lai parādītu pēdējo rakstzīmi no virknes |
| skaidrs () | Šo funkciju izmanto, lai noņemtu visus virknes elementus. |
| strncmp () | Šī funkcija salīdzina ne vairāk kā abu nodoto virkņu pirmo baitu skaitu. |
| strncpy() | Šī funkcija ir līdzīga funkcijai strcpy(), izņemot to, ka tiek kopēti ne vairāk kā n baiti src |
| strrhr() | Šī funkcija nosaka rakstzīmes pēdējo atkārtojumu virknē. |
| ieplaisājis() | Šī funkcija pievieno avota virknes kopiju galamērķa virknes beigām |
| atrast () | Šo funkciju izmanto, lai virknē meklētu noteiktu apakšvirkni, un tā atgriež apakšvirknes pirmās rakstzīmes pozīciju. |
| aizvietot() | Šo funkciju izmanto, lai aizstātu katru elementu diapazonā [pirmais, pēdējais), kas ir vienāds ar veco vērtību, ar jaunu vērtību. |
| substr() | Šo funkciju izmanto, lai no noteiktas virknes izveidotu apakšvirkni. |
| salīdzināt() | Šo funkciju izmanto, lai salīdzinātu divas virknes, un tā atgriež rezultātu vesela skaitļa formā. |
| dzēst () | Šo funkciju izmanto, lai noņemtu noteiktu virknes daļu. |
C++ Strings iteratora funkcijas
Programmā C++ iebūvētās virkņu iteratora funkcijas nodrošina programmētājam vienkāršu veidu, kā modificēt un šķērsot virknes elementus. Šīs funkcijas ir:
| Funkcijas | Apraksts |
|---|---|
| sākt () | Šī funkcija atgriež iteratoru, kas norāda uz virknes sākumu. |
| beigas () | Šī funkcija atgriež iteratoru, kas norāda uz virknes beigām. |
| rfind () | Šī funkcija tiek izmantota, lai atrastu virknes pēdējo gadījumu. |
| rbegin() | Šī funkcija atgriež apgriezto iteratoru, kas norāda uz virknes beigām. |
| renderēt () | Šī funkcija atgriež apgriezto iteratoru, kas norāda uz virknes sākumu. |
| cbegin() | Šī funkcija atgriež const_iterator, kas norāda uz virknes sākumu. |
| daži() | Šī funkcija atgriež const_iterator, kas norāda uz virknes beigām. |
| crbegin() | Šī funkcija atgriež const_reverse_iterator, kas norāda uz virknes beigām. |
| crend () | Šī funkcija atgriež const_reverse_iterator, kas norāda uz virknes sākumu. |
Piemērs:
C++
// C++ Program to demonstrate string iterator functions> #include> using> namespace> std;> int> main()> {> >// declaring an iterator> >string::iterator itr;> >// declaring a reverse iterator> >string::reverse_iterator rit;> >string s =>'techcodeview.com'>;> >itr = s.begin();> > >cout <<>'Pointing to the start of the string: '> << *itr<< endl;> >itr = s.end() - 1;> >cout <<>'Pointing to the end of the string: '> << *itr << endl;> >rit = s.rbegin();> >cout <<>'Pointing to the last character of the string: '> << *rit << endl;> >rit = s.rend() - 1;> >cout <<>'Pointing to the first character of the string: '> << *rit << endl;> >return> 0;> }> |
>
>Izvade
Edīte Maks Hiršs
Pointing to the start of the string: G Pointing to the end of the string: s Pointing to the last character of the string: s Pointing to the first character of the string: G>
Virknes ietilpības funkcijas
Programmā C++ virknes jaudas funkcijas tiek izmantotas, lai pārvaldītu virknes lielumu un ietilpību. Galvenās jaudas funkcijas ietver:
| Funkcija | Apraksts |
|---|---|
| garums () | Šo funkciju izmanto, lai atgrieztu virknes lielumu |
| ietilpība () | Šī funkcija atgriež kapacitāti, ko kompilators ir piešķīris virknei |
| mainīt izmēru () | Šī funkcija ļauj mums palielināt vai samazināt virknes izmēru |
| shrink_to_fit() | Šī funkcija samazina jaudu un padara to vienādu ar minimālo. |
Piemērs:
C++
#include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> > >// length function is used to print the length of the string> >cout <<>'The length of the string is '> << s.length() << endl;> > >// capacity function is used to print the capacity of the string> >cout <<>'The capacity of string is '> << s.capacity()<< endl;> > >// the string.resize() function is used to resize the string to 10 characters> >s.resize(10);> > >cout <<>'The string after using resize function is '> << s << endl;> > >s.resize(20);> > >cout <<>'The capacity of string before using shrink_to_fit function is '><< s.capacity() << endl;> > >// shrink to fit function is used to reduce the capacity of the container> >s.shrink_to_fit();> >cout <<>'The capacity of string after using shrink_to_fit function is '><< s.capacity() << endl;> >return> 0;> }> |
>
>Izvade
The length of the string is 13 The capacity of string is 15 The string after using resize function is GeeksforGe The capacity of string before using shrink_to_fit function is 30 The capacity of string...>
Noslēgumā šajā rakstā ir paskaidrots, kā virknes var ignorēt programmā C++, izmantojot rakstzīmju masīvus un virkņu klases. Virkņu klase nodrošina uzlabotas funkcijas, savukārt rakstzīmju masīvs nodrošina pamata funkcijas, taču ir efektīva un viegli lietojama. Šajā rakstā mēs arī apspriedām dažādas metodes, kā iegūt informāciju no lietotāja.
Lai uzzinātu vairāk par std::string klasi, skatiet rakstu - std::string klase valodā C++