Poeilutės funkcija naudojama tvarkyti eilučių operacijas, pvz sulaužytas () , pridėti () ir kt . Jis sugeneruoja naują eilutę, kurios vertė inicijuojama į šio objekto antrinės eilutės kopiją. C++ antraštės failas, reikalingas std::substr(), eilutės funkcijoms .
Poeilutės funkcija turi dvi reikšmes poz ir tik kaip argumentą ir grąžina naujai sukurtą eilutės objektą, kurio vertė inicijuota į šio objekto antrinės eilutės kopiją. Stygos kopijavimas prasideda nuo poz ir daroma iki paštas+len reiškia [pos, poz+len).
Sintaksė:
string substr (size_t pos, size_t len) const;>
Parametrai:
- poz.: Pirmojo kopijuojamo simbolio padėtis.
- tik: Poeilinės eilutės ilgis.
- size_t: Tai beženklio integralo tipas.
Grąžinimo vertė: Jis grąžina eilutės objektą.
Pavyzdys:
java kalbos interviu klausimaiC++
// C++ program to demonstrate functioning of substr() #include #include using namespace std; int main() { // Take any string string s1 = 'Geeks'; // Copy two characters of s1 (starting // from position 3) string r = s1.substr(3, 2); // prints the result cout << 'String is: ' << r; return 0; }> Išvestis
String is: ks>
- Laiko sudėtingumas: O(N)
- Pagalbinė erdvė: O(N)
Daugiau pavyzdžių:
string: ' h e l l o w o r l d ' index: 0 1 2 3 4 5 6 7 8 9 10>
jei parašytume: –
turi kitą java
- s.substr(s.begin(),3) => kompiliavimo klaida (nes negalima konvertuoti iteratoriaus į int duomenų tipą)
- s.substr(2,3) => llo (trys raidės iš 2 rodyklės)
- s.substr(*s.begin()-s[0],3) => hel (*s.begin() yra 'h', tada 'h'-s[0]=> 'h'-'h'=0 reiškia substr(0,3) —- trys raidės nuo nulio indekso
- s.substr(5,1) => ‘’ (spausdina tuščią vietą , tai yra 5 indekse)
- s.substr(2,0) => (neišvedama) (pasirenka nulį raidžių iš antrojo indekso)
Svarbūs dalykai, kuriuos reikia atsiminti
- Pirmojo simbolio indeksas yra 0 (ne 1).
- Jeigu poz yra lygi eilutės ilgiui, funkcija grąžina tuščią eilutę.
- Jeigu poz yra didesnis nei eilutės ilgis, jis išmeta out_of_range. Jei taip atsitiks, eilutėje nėra jokių pakeitimų.
- Jei prašoma poeilutė tik yra didesnis nei eilutės dydis, tada grąžinama antrinė eilutė yra [pozicija, dydis ()) .
- Jeigu tik nėra perduodamas kaip parametras, tada grąžinama antrinė eilutė yra [pozicija, dydis ()).
Poeilinės programos
- Po simbolio gaukite antrinę eilutę
- Prieš simbolį gaukite antrinę eilutę
- Spausdinkite visas tam tikros eilutės polines eilutes
- Visų skaičių žyminčios eilutės poeilių suma
- Išspausdinkite didžiausią visų eilučių eilučių, žyminčių skaičių, reikšmę
- Išspausdinkite mažiausią visų skaičių žyminčios eilutės eilučių reikšmę
Gaukite poeilelę po simbolio
Čia pateikiama eilutė ir simbolis, o jūs turite atspausdinti eilutę, po kurios eina nurodytas simbolis.
Ištraukite viską po to : stygoje šuo Katė .
Pavyzdys:
C++ // C++ program to demonstrate functioning of substr() #include #include using namespace std; int main() { // Take any string string s = 'dog:cat'; // Find position of ':' using find() int pos = s.find(':'); // Copy substring after pos string sub = s.substr(pos + 1); // prints the result cout << 'String is: ' << sub; return 0; }> Išvestis
String is: cat>
Laiko sudėtingumas: O(N)
Pagalbinė erdvė: O(N)
Kaip gauti poeilelę prieš simbolį?
Čia pateikiama eilutė ir simbolis, o jūs turite atspausdinti eilutę, po kurios eina nurodytas simbolis.
Pavyzdys:
C++ // C++ program to demonstrate functioning of substr() #include #include using namespace std; int main() { // Take any string string s = 'dog:cat'; // Find position of ':' using find() int pos = s.find(':'); // Copy substring before pos // Extract everything before the ':' in the string // 'dog:cat'. string sub = s.substr(0, pos); // prints the result cout << 'String is: ' << sub; return 0; }> Išvestis
String is: dog>
Laiko sudėtingumas: O(N)
Pagalbinė erdvė: O(N)
Kaip atspausdinti visas nurodytos eilutės eilutes?
Pateikta eilutė kaip įvestis. Turime parašyti programą, kuri atspausdins visas netuščias tos eilutės eilutes.
Pavyzdys:
mašinraščio data ir laikasC++
// C++ program to demonstrate all possible // substrings of a given string #include using namespace std; // Function to print all sub strings void subString(string s, int n) { // Pick starting point in outer loop // and lengths of different strings for // a given starting point for (int i = 0; i < n; i++) for (int len = 1; len <= n - i; len++) cout << s.substr(i, len) << endl; } // Driver program to test above function int main() { string s = 'abcd'; subString(s, s.length()); return 0; }> Išvestis
a ab abc abcd b bc bcd c cd d>
Laiko sudėtingumas: O (N3)
Pagalbinė erdvė: O(1)
Spausdinti visų eilučių eilučių, žyminčių skaičių, sumą
Atsižvelgiant į sveikąjį skaičių, pavaizduotą kaip eilutę, turime gauti visų galimų šios eilutės eilučių sumą.
Pavyzdys:
C++ // C++ program to print sum of all possible substring of // a number represented as a string #include using namespace std; // Utility method to convert character digit to // integer digit int toDigit(char ch) { return (ch - '0'); } // Returns sum of all substring of num int sumOfSubstrings(string s) { vector v; int n = s.ilgis(); už (int i = 0; i< n; i++) { for (int len = 1; len <= n - i; len++) { string sub = (s.substr(i, len)); int x = stoi(sub); v.push_back(x); } } int res = accumulate(v.begin(), v.end(), 0); return res; } // Driver code to test above methods int main() { string num = '1234'; cout << sumOfSubstrings(num) << endl; return 0; }> Išvestis
1670>
Laiko sudėtingumas: O (N3)
Pagalbinė erdvė: O(N)
jei kitaip jei kitaip java
Išspausdinkite didžiausią visų eilučių, žyminčių skaičių, eilučių vertę
Atsižvelgiant į sveikąjį skaičių, pavaizduotą kaip eilutę, turime gauti didžiausią visų galimų duotosios eilutės, kuri reiškia skaičių, poeilučių skaičių.
Pavyzdys:
C++ // C++ program to demonstrate max. of all possible // substrings of a given string #include using namespace std; void subString(string s, int n) { vector v; už (int i = 0; i< n; i++) { for (int len = 1; len <= n - i; len++) { string sub = (s.substr(i, len)); int x = stoi(sub); v.push_back(x); } } cout << *max_element(v.begin(), v.end()) << endl; } // Driver program to test above function int main() { string s = '823'; subString(s, s.length()); return 0; }> Išvestis
823>
Paaiškinimas: Visos poeilutės yra { 8, 82, 823, 2, 23, 3 }, o didžiausia eilutės reikšmė yra 823.
Laiko sudėtingumas: O (N3)
Pagalbinė erdvė: O (N!)
Išspausdinkite minimalią visų eilučių eilučių, žyminčių skaičių, reikšmę
Atsižvelgiant į sveikąjį skaičių, pavaizduotą kaip eilutę, turime gauti mažiausią visų galimų duotosios eilutės, kuri reiškia skaičių, poeilučių skaičių.
Pavyzdys:
myflixrC++
// C++ program to demonstrate minimum of all possible // substrings of a given string #include using namespace std; void subString(string s, int n) { vector v; už (int i = 0; i< n; i++) { for (int len = 1; len <= n - i; len++) { string sub = (s.substr(i, len)); int x = stoi(sub); v.push_back(x); } } cout << *min_element(v.begin(), v.end()) << endl; } // Driver program to test above function int main() { string s = '4572'; subString(s, s.length()); return 0; }> Išvestis
2>
Laiko sudėtingumas: O (N3)
Pagalbinė erdvė: O (N!)
Kitos poeilutės programos
- Teksto paieška: Poeilutės naudojamos ieškant žodžių ar frazių didesniuose tekstuose. Tai dažniausiai naudojama paieškos sistemose, kur vartotojas gali įvesti frazę arba raktinį žodį, o variklis ieškos bet kokių atitikčių, kuriose yra ta poeilutė.
- Teksto analizė: Poeilutės naudojamos teksto analizavimo algoritmuose, siekiant suskaidyti didesnes eilutes į mažesnius gabalus. Pavyzdžiui, analizatorius gali būti naudojamas atskiriems žodžiams iš sakinio išskirti ir saugoti duomenų struktūroje.
- Teksto manipuliavimas: Poeilutės naudojamos teksto apdorojimo programose, siekiant rasti ir pakeisti tam tikrus žodžius ar frazes didesniuose teksto korpusuose. Tai gali būti naudojama norint atlikti paiešką ir pakeisti užduotis arba atnaujinti informaciją dokumente.
- Natūralios kalbos apdorojimas: Poeilutės naudojamos natūralios kalbos apdorojimo algoritmuose žodžiams ir frazėms identifikuoti. Tai naudojama tokiose programose kaip kalbos atpažinimas, kur algoritmas turi identifikuoti vartotojo ištartus žodžius.
- Rašto atpažinimas: Poeilutės naudojamos šablonų atpažinimo algoritmuose, siekiant nustatyti duomenų šablonus. Tai gali būti naudojama siekiant nustatyti finansinių duomenų tendencijas arba aptikti vaizdų anomalijas.
- Slaptažodžio apsauga: Poeilutės naudojamos slaptažodžiams patikrinti. Tai atliekama lyginant įvestą slaptažodį su išsaugota pradinio slaptažodžio eilute. Jei du sutampa, slaptažodis patvirtinamas. Ši technika naudojama daugelyje programų, siekiant padidinti saugumą.