logo

Stīgas programmā C++

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.

Stīgas programmā C++

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