logo

Styginių funkcijos C++

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.

pridėti ()

Funkcija append() prideda vieną eilutę prie kitos pabaigos.

4.

Stygų palyginimas

== Operatorius

Galite palyginti eilutes naudodami operatorių ==.

palyginti ()

Funkcija palyginimas () grąžina sveikąjį skaičių, nurodantį palyginimo rezultatą.

5.

Poeilutės

substr()

Naudokite funkciją substr(), kad ištrauktumėte eilutę iš eilutės.

6.

Ieškoma

rasti ()

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;>> cout << name << endl;> > >// 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++>