C++ eilutės yra simbolių sekos, saugomos char masyve. Stygos naudojamos žodžiams ir tekstui saugoti. Jie taip pat naudojami duomenims, pvz., skaičiams ir kitokiai informacijai, saugoti. C++ eilutes galima apibrėžti naudojant std::styginių klasė arba C stiliaus simbolių masyvai.

1. C stiliaus stygos
Šios eilutės saugomos kaip paprastas senas simbolių masyvas, baigiamas a nulinis simbolis „ “ . Tai yra eilučių tipas, kurį C++ paveldėjo iš C kalbos.
Sintaksė:
char str[] = 'techcodeview.com';>
Pavyzdys:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Išvestis
techcodeview.com>
2. std::string Klasė
Tai yra nauji eilučių tipai, kurie C++ įvedami kaip std::string klasė, apibrėžta antraštės faile. Tai suteikia daug pranašumų, palyginti su įprastomis C stiliaus eilutėmis, pvz., dinaminis dydis, narių funkcijos ir kt.
Sintaksė:
std::string str('techcodeview.com');> Pavyzdys:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Išvestis
techcodeview.com>
Dar vienas būdas, kaip galime sukurti eilutes, kurių simbolis kartojasi vėl ir vėl.
Sintaksė:
std::string str(number,character);>
Pavyzdys:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Išvestis:
ggggg>
Būdai, kaip apibrėžti eilutę C++
Stygos gali būti apibrėžtos keliais būdais C++. Eilutes galima pasiekti iš standartinės bibliotekos naudojant eilučių klasę. Simbolių matricos taip pat gali būti naudojamos eilutėms apibrėžti. String suteikia daug funkcijų, tokių kaip paieška ir manipuliavimas, kurie yra dažniausiai naudojami metodai. Nepaisant to, kad šis metodas yra mažiau pažengęs nei stygų klasė, jis vis dar plačiai naudojamas, nes yra efektyvesnis ir lengviau naudojamas. Būdai, kaip apibrėžti eilutę C++, yra šie:
- Naudojant eilutės raktinį žodį
- Naudojant C stiliaus eilutes
1. Naudojant eilutės raktinį žodį
Patogiau apibrėžti eilutę naudojant eilutės raktinį žodį, o ne naudoti masyvo raktinį žodį, nes ją lengva rašyti ir suprasti.
Sintaksė:
string s = 'techcodeview.com'; string s('techcodeview.com');> Pavyzdys:
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;> }> |
>
>Išvestis
s = techcodeview.com str = techcodeview.com>
2. Naudojant C stiliaus eilutes
C stiliaus eilučių bibliotekų funkcijų, tokių kaip strcpy(), strcmp() ir strcat() naudojimas eilutėms apibrėžti. Šis metodas yra sudėtingesnis ir ne taip plačiai naudojamas kaip kiti du, tačiau jis gali būti naudingas dirbant su senu kodu arba kai reikia našumo.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> Pavyzdys:
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;> }> |
>
>Išvestis
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Kitas C stiliaus eilutės pavyzdys:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Išvestis
Your string is= Geeeks for Geeks>
Kaip įvesti stygų įvestį C++
Stygos įvestis reiškia eilutės priėmimą iš vartotojo. C++ kalboje. Turime skirtingus vartotojo įvesties priėmimo tipus, kurie priklauso nuo eilutės. Dažniausias būdas yra priimti įvestį su valgymas raktinis žodis su ekstrahavimo operatoriumi (>>) C++. Metodai, kaip eilutę priimti kaip įvestį, yra šie:
- valgymas
- getline
- styginių srautas
1. Naudojant Cin
Paprasčiausias būdas gauti eilutės įvestį yra naudoti valgymas komandą kartu su srauto ištraukimo operatoriumi (>>).
Sintaksė:
cin>>s;>
Pavyzdys:
C++
leksikografinė tvarka
// 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; }> |
>
>Išvestis
Enter String String is:>
Išvestis:
Enter String techcodeview.com String is: techcodeview.com>
2. Getline naudojimas
The getline() funkcija C++ naudojamas nuskaityti eilutę iš įvesties srauto. Jis deklaruojamas antraštės faile.
Sintaksė:
getline(cin,s);>
Pavyzdys:
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;> }> |
>
java žemėlapiai
>Išvestis
Enter String String is:>
Išvestis:
Enter String techcodeview.com String is: techcodeview.com>
3. Stringstream naudojimas
The stringstream klasėje C++ naudojamas norint vienu metu įvesti kelias eilutes.
Sintaksė:
stringstream stringstream_object(string_name);>
Pavyzdys:
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;> >//>> operatorius skaitys iš stringstream objekto> >while> (obj>> temp) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Išvestis
techcodeview.com to the Moon>
Kaip perduoti eilutes funkcijoms?
Lygiai taip pat, kaip perduodame masyvą funkcijai, C++ eilutės gali būti perduodamos funkcijoms kaip simbolių masyvai. Čia yra programos pavyzdys:
Pavyzdys:
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;> }> |
>
>Išvestis
Passed String is: techcodeview.com>
Rodyklės ir stygos
Rodikliai C++ yra simboliniai adresų atvaizdai. Jie leidžia programoms imituoti skambutį pagal nuorodą, taip pat kurti ir valdyti dinamines duomenų struktūras. Naudodami rodykles galime gauti pirmąjį eilutės simbolį, kuris yra eilutės pradžios adresas. Kaip parodyta žemiau, nurodytą eilutę galima pasiekti ir atspausdinti per rodykles.
Pavyzdys:
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;> }> |
>
>Išvestis
Geeksforgeeks>
Skirtumas tarp eilutės ir simbolių masyvo C++
Pagrindinis skirtumas tarp eilutės ir simbolių masyvo yra tas, kad eilutės yra nekintamos, o simbolių masyvai – ne.
| Styga | Simbolių masyvas |
|---|---|
| Stygos apibrėžia objektus, kurie gali būti pavaizduoti kaip eilučių srautai. | Nulinis simbolis užbaigia simbolių masyvą. |
| Masyvo skilimas nevyksta eilutėse, nes eilutės vaizduojamos kaip objektai. | Grėsmė dėl masyvo irimas yra simbolių masyvo atveju |
| Stygų klasė suteikia daugybę funkcijų, skirtų manipuliuoti eilutėmis. | Simbolių masyvai nesiūlo integruotų funkcijų, skirtų valdyti eilutes. |
| Atmintis paskirstoma dinamiškai. | Simbolių masyvo dydis turi būti paskirstytas statiškai. |
Sužinokite daugiau apie Skirtumas tarp eilučių ir simbolių masyvų C++
C++ stygų funkcijos
C++ pateikia kai kurias integruotas funkcijas, kurios naudojamos manipuliuoti eilutėmis, pavyzdžiui, strcpy() ir strcat() funkcijos, skirtos eilėms kopijuoti ir sujungti. Kai kurie iš jų yra:
| Funkcija | apibūdinimas |
|---|---|
| ilgis () | Ši funkcija grąžina eilutės ilgį. |
| apsikeitimas () | Ši funkcija naudojama sukeisti 2 eilučių reikšmes. |
| dydis () | Naudojamas eilutės dydžiui nustatyti |
| pakeisti dydį () | Ši funkcija naudojama norint pakeisti eilutės ilgį iki nurodyto simbolių skaičiaus. |
| rasti () | Naudojamas norint rasti eilutę, kuri perduodama parametruose |
| pastumti atgal() | Ši funkcija naudojama perduoti perduotą simbolį eilutės pabaigoje |
| pop_back() | Ši funkcija naudojama paskutiniam simboliui ištraukti iš eilutės |
| aišku () | Ši funkcija naudojama pašalinti visus eilutės elementus. |
| strncmp () | Ši funkcija lygina daugiausia pirmųjų abiejų perduodamų eilučių baitų skaičių. |
| strncpy () | Ši funkcija yra panaši į strcpy() funkciją, išskyrus tai, kad nukopijuojama daugiausia n baitų src |
| strrchr() | Ši funkcija nustato paskutinio simbolio atvejį eilutėje. |
| sulaužytas () | Ši funkcija prideda šaltinio eilutės kopiją paskirties eilutės pabaigoje |
| rasti () | Ši funkcija naudojama ieškant tam tikros poeilutės eilutėje ir grąžina pirmojo poeilutės simbolio padėtį. |
| pakeisti () | Ši funkcija naudojama pakeisti kiekvieną elementą diapazone [pirmas, paskutinis), kuris yra lygus senajai vertei, nauja reikšme. |
| substr() | Ši funkcija naudojama poeilutei sukurti iš nurodytos eilutės. |
| palyginti () | Ši funkcija naudojama palyginti dvi eilutes ir grąžina rezultatą sveikojo skaičiaus forma. |
| ištrinti () | Ši funkcija naudojama tam tikrai eilutės daliai pašalinti. |
C++ stygų iteratoriaus funkcijos
C++ integruotos eilučių iteratoriaus funkcijos suteikia programuotojui paprastą būdą keisti ir eiti eilučių elementus. Šios funkcijos yra:
| Funkcijos | apibūdinimas |
|---|---|
| pradėti () | Ši funkcija grąžina iteratorių, nukreipiantį į eilutės pradžią. |
| galas() | Ši funkcija grąžina iteratorių, kuris nurodo eilutės pabaigą. |
| rfind () | Ši funkcija naudojama norint rasti paskutinį eilutės įvykį. |
| rbegin () | Ši funkcija grąžina atvirkštinį iteratorių, nukreipiantį į eilutės pabaigą. |
| pateikti () | Ši funkcija grąžina atvirkštinį iteratorių, nukreipiantį į eilutės pradžią. |
| cbegin() | Ši funkcija grąžina const_iterator, nukreipiantį į eilutės pradžią. |
| keletas() | Ši funkcija grąžina const_iterator, nukreipiantį į eilutės pabaigą. |
| crbegin () | Ši funkcija grąžina const_reverse_iterator, nukreipiantį į eilutės pabaigą. |
| crend () | Ši funkcija grąžina const_reverse_iterator, nukreipiantį į eilutės pradžią. |
Pavyzdys:
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;> }> |
>
>Išvestis
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>
Styginių talpos funkcijos
C++ kalboje eilutės talpos funkcijos naudojamos eilutės dydžiui ir talpai valdyti. Pagrindinės talpos funkcijos apima:
| Funkcija | apibūdinimas |
|---|---|
| ilgis () | Ši funkcija naudojama eilutės dydžiui grąžinti |
| talpa () | Ši funkcija grąžina pajėgumą, kurį eilutei paskirsto kompiliatorius |
| pakeisti dydį () | Ši funkcija leidžia padidinti arba sumažinti eilutės dydį |
| Sumažinti, kad tilptų() | Ši funkcija sumažina talpą ir padaro ją lygią minimaliam. |
Pavyzdys:
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;> }> |
>
>Išvestis
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...>
Apibendrinant, šiame straipsnyje paaiškinama, kaip eilutes galima nepaisyti C++ naudojant simbolių masyvus ir eilučių klases. Eilučių klasė suteikia daugiau pažangių funkcijų, o simbolių masyvas suteikia pagrindines funkcijas, tačiau yra efektyvus ir paprastas naudoti. Šiame straipsnyje taip pat aptarėme įvairius būdus, kaip priimti naudotojo informaciją.
Norėdami sužinoti daugiau apie std::string klasę, skaitykite straipsnį - std::styginių klasė C++