Eilutė vadinama simbolių masyvu. C++ kalboje simbolių srautas / seka saugoma char masyve. C++ apima std::string klasę, kuri naudojama eilutėms pavaizduoti. Tai yra vienas iš pagrindinių C++ duomenų tipų ir jame yra didžiulis integruotų funkcijų rinkinys. Šiame straipsnyje apžvelgsime eilučių skaičiavimo funkcijas.
Kas yra std::string?
Std::string yra C++ klasė nuo C++98. Ši klasė yra standartinis teksto eilutės atvaizdavimas. Tai apima kai kurias įprastas eilutės operacijas, tokias kaip rasti, pakeisti, sujungti, palyginti ir tt Ji yra antraštės failą.
Stygos deklaravimas ir inicijavimas
std::string company = 'techcodeview.com!';>
Dažniausiai naudojamos stygų funkcijos C++
Klasėje std::string yra funkcijų, skirtų atlikti kai kurias įprastas eilutės operacijas. Žemiau esančioje lentelėje yra keletas dažniausiai naudojamų C++ funkcijų:
| Taip ne. | Kategorija | Funkcijos ir operatoriai | Funkcionalumas |
|---|---|---|---|
| 1. java char į sveikąjį skaičių | Stygos ilgis | ilgis () arba dydis () | Tai grąžins eilutės ilgį. |
| 2. | Prieiga prie simbolių | Indeksavimas (naudojant masyvą[index]) | Norėdami pasiekti atskirus simbolius naudodami masyvo indeksavimą. |
| adresu () | Naudojamas norint pasiekti nurodyto indekso simbolį. | ||
| 3. | Eilučių pridėjimas ir sujungimas | + operatorius | + operatorius naudojamas sujungti dvi eilutes. |
| Funkcija append() prideda vieną eilutę prie kitos pabaigos. | |||
| 4. | Stygų palyginimas | == Operatorius | Galite palyginti eilutes naudodami operatorių ==. |
| Funkcija palyginimas () grąžina sveikąjį skaičių, nurodantį palyginimo rezultatą. | |||
| 5. | Poeilutės | Naudokite funkciją substr(), kad ištrauktumėte eilutę iš eilutės. | |
| 6. | Ieškoma | Funkcija find() grąžina pirmojo poeilutės pasireiškimo vietą. | |
| 7. | Stygų modifikavimas | pakeisti () | Norėdami pakeisti eilutės dalį, naudokite funkciją 'replace()'. |
| Įdėti() | Funkcija insert() prideda poeilelę nurodytoje vietoje. | ||
| ištrinti () | Norėdami pašalinti dalį eilutės, naudokite funkciją erase(). | ||
| 8. | Konversija | c_str() | Norėdami gauti C stiliaus eilutę iš std::string, galite naudoti funkciją c_str(). |
Pastaba: Aukščiau pateiktos funkcijos veikia tik su C++ stiliaus eilutėmis (std::string objektai), o ne su C stiliaus eilutėmis (simbolių masyvu).
1. Stygos ilgis – ilgis() arba dydis()
Eilutės ilgį (simbolių skaičių) galime rasti naudodami bet kurį ilgis () arba dydis () std::string klasės funkcija.
Sintaksė
string_object. size() or string_object. length()>
Parametrai
- Ši funkcija nepriima jokių parametrų.
Grąžinimo vertė
- Ši funkcija grąžina simbolių skaičių eilutės objekte.
Pavyzdys
std::string text = 'geeksforGeeks'; int length = text.length(); //or int length = text.size();>
Tai grąžins eilutės ilgį tekstą kuri yra 13.
2. Prieiga prie simbolių – at()
Paprastai eilutės simbolį galime pasiekti naudodami [] masyvo apatinio indekso operatorius ir indeksavimas. Tačiau std::string taip pat turi funkciją, pavadintą adresu () kurį galima naudoti norint pasiekti eilutės simbolius.
Sintaksė
string_object. at( index );>
Parametrai
- indeksas: rodo simbolio vietą eilutėje.
Grąžinimo vertė
- Ši funkcija grąžina simbolį, esantį ties indeksas.
Pavyzdys
std::string str = 'GEEKSFORGEEKS'; std::cout << str.at(3);>
std::cout pulte išspausdins K, nes tai yra 3 rodyklėje esantis simbolis.
3. Eilučių sujungimas – append() arba + Operatorius
C++ eilutę galime sujungti dviem būdais:
1. + Operatorius
+ operatorius yra perkrautas std::string klasėje, kad būtų galima atlikti eilučių sujungimą.
Sintaksė
string_object1 + string_object2>
Pavyzdys
std::string firstName = 'Geeks'; std::string lastName = 'forGeeks'; std::string fullName = firstName + ' ' + lastName;>
+ operatorius naudojamas sujungti dvi eilutes. Eilutė fullName bus techcodeview.com.
2. pridėti ()
Funkcija append() yra dar viena nario funkcija, skirta sujungti dvi eilutes.
Sintaksė
string_object1. append ( string2 )>
Parametrai
- string2: ši funkcija naudoja eilutę, kuri turi būti pridėta kaip parametras. Tai gali būti ir C, arba C++ stiliaus eilutė.
Grąžinimo vertė
- Nuoroda į paskutinę eilutę.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string> Funkcija append() prideda vieną eilutę prie kitos pabaigos.
4. String Comparison – palyginkite() arba == Operator
Lygiai taip pat kaip ir sujungimas, eilučių palyginimą galime atlikti dviem būdais:
1. == Operatorius
Lygybės operatorius gali būti naudojamas palyginti dvi eilutes, nes ji yra perkrauta šiai operacijai std::string klasėje.
Sintaksė
string_object1 == string_object2>
Tai grįš tiesa jei abi eilutės yra lygios, kitaip grąžina klaidinga.
Pavyzdys
std::string str1 = 'apple'; std::string str2 = 'banana'; if (str1 == str2) { std::cout << 'Strings are equal'; } else { std::cout << 'Strings are not equal'; }> Čia bus išspausdinta eilutė Stygos nelygios, nes grįš == operatorius klaidinga.
2. palygink ()
Funkcija palyginimas () yra std::string klasės nario funkcija, kurią galima naudoti norint palyginti dvi eilutes.
Sintaksė
str1. compare( str2 );>
Parametrai
- str2: Tai eilutė, kurią reikia palyginti. Tai gali būti tiek C, tiek C++ stiliaus eilutė.
Grąžinimo vertė
- Jei eilutės yra lygios, grįžkite nulis.
- Jei str1 yra didesnis nei str2, grąžinkite vertę >0
- Jei str2 yra didesnis nei str1, grąžinkite vertę <0
Pavyzdys
string str1 = 'Geeks'; string str2: = 'Geeksfor'; int result = str1. compare (str2);>
Rezultate bus mažesnė nei nulis reikšmė, nes str2 yra didesnė nei str1.
Taip pat galime palyginti str2 eilutę naudodami palyginimo funkciją ():
str1.compare(position, length, str2);>
kur,
- pozicija : pirmosios simbolio poeilutės padėtis. ilgis: poeilutės ilgis. str2: Lyginamas eilutės objektas.
5. Paieška – rasti()
Mes galime naudoti rasti () std::string klasės funkcija, skirta patikrinti, ar eilutėje arba eilutės dalyje yra nurodytas simbolis arba poeilutė.
Find() sintaksė
str1.find(var);>
Parametrai
- var: tai gali būti C stiliaus eilutė, C++ stiliaus eilutė arba simbolis, kurio reikia ieškoti eilutėje.
Grąžinimo vertė
- Jis grąžina žymeklį į pirmąjį simbolio arba poeilutės pasireiškimą eilutėje.
Pavyzdys
std::string text = 'C++ Programming'; int position = text.find('Programming'); // Find the position of a substring> Padėties kintamajame bus 4, kuris yra pirmosios eilutės programavimo eilutės tekste pradžia.
6. Generuoti poeilelę – substr()
Mes galime naudoti substr() funkcija sugeneruoti dalį eilutės kaip naują eilutės objektą. Tai yra std::string klasės nario funkcija.
Substr() sintaksė C
str1. substr ( start, end );>
Parametrai
- pradžia: generuojamos poeilutės pradinė padėtis. end: generuojamos poeilutės pabaiga.
Grąžinimo tipas
- Jis grąžina naujai sukurtą eilutės objektą.
Pavyzdys
std::string text = 'Hello, World!'; std::string sub = text.substr(7, 5); // Extract 'World'>
Aukščiau pateiktame pavyzdyje. į sub eilutėje bus Pasaulis.
Stygų modifikavimas
Ši funkcija leidžia modifikuoti esamą eilutę.
1. įterpti ()
Funkcija insert () ne tik leidžia pridėti eilutę, bet ir leidžia ją įtraukti į nurodytą vietą. Tai taip pat yra std::string klasės narių funkcija.
Sintaksė
visų didžiųjų raidžių spartusis klavišas Excel
str1. insert (index, str2);>
Parametrai
- str2: eilutė, kurią reikia įterpti. indeksas: vieta, kur įterpti naują eilutę
Grąžinimo tipas
- Nuoroda į str1.
Pavyzdys
std::string text = 'I have a cat.'; text.insert(9, ' black'); // Insert ' black' at position 9>
2. pakeisti ()
Funkcija „replace()“ pakeičia eilutės dalį nurodyta kita eilute. Skirtingai nuo įterpimo, dalies, kurioje turi būti įterpta nauja eilutė, simboliai pašalinami.
Sintaksė
str1. replace ( index, size, str2 );>
Parametrai
- indeksas: rodyklė, kur pradėti keisti naują eilutę. dydis: keičiamos eilutės dalies ilgis. str2: nauja eilutė, kurią reikia įterpti.
Grąžinimo tipas
- Nuoroda į str1.
Pavyzdys
std::string text = 'I like dogs.'; text.replace(7, 4, 'cats'); // Replace 'dogs' with 'cats'>
3. ištrinti ()
Funkcija erase() yra std::string klasės nario funkcija, naudojama simboliui arba eilutės daliai pašalinti.
Sintaksė
str1 .erase( start, end);>
Parametrai
- pradžia: Pradinė padėtis. pabaiga: pabaigos padėtis.
Grąžinimo tipas
- Nuoroda į str1.
Pavyzdys
std::string text = 'This is an example.'; text.erase(5, 3); // Erase 'is '>
Konvertuoti std::string į C eilutę – c_str)_
Funkcija c_str () yra nario funkcija, naudojama konvertuoti C++ stiliaus eilutę, ty std::string objektus į C stiliaus eilutę, ty simbolių masyvą.
Sintaksė
str1.c_str()>
Parametrai
- Ši funkcija nepriima jokių parametrų.
Grąžinimo vertė
- Nukreipkite žymiklį į lygiavertį simbolių masyvą.
Pavyzdys
std::string str = 'C++'; const char* cstr = str.c_str()>
C++ stygų funkcijų pavyzdys
Žemiau pateiktas kodas parodo aukščiau nurodytų eilutės funkcijų naudojimą:
C++
// 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>> vardas;>> > >// 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;> }> |
>
>
Išvestis
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++>