Funkce podřetězec se používá pro zpracování operací s řetězci, jako je prasklý() , připojit() , atd . Vygeneruje nový řetězec s jeho hodnotou inicializovanou na kopii podřetězce tohoto objektu. V C++ je hlavičkový soubor, který je vyžadován pro std::substr(), řetězcové funkce .
Funkce podřetězec nabývá dvou hodnot poz a jen jako argument a vrátí nově vytvořený objekt typu řetězec s jeho hodnotou inicializovanou na kopii dílčího řetězce tohoto objektu. Kopírování řetězce začíná od poz a je hotovo do pos+jen znamená [pos, poz+len).
Syntax:
nevýhody internetového bankovnictví
string substr (size_t pos, size_t len) const;>
Parametry:
- pozice: Pozice prvního znaku, který se má zkopírovat.
- jen: Délka dílčího řetězce.
- size_t: Je to integrální typ bez znaménka.
Návratová hodnota: Vrací objekt typu řetězec.
Příklad:
C++ // 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; }> Výstup
String is: ks>
- Časová složitost: NA)
- Pomocný prostor: NA)
Další příklady:
string: ' h e l l o w o r l d ' index: 0 1 2 3 4 5 6 7 8 9 10>
když napíšeme: -
nastavit v Javě
- s.substr(s.begin(),3) => chyba kompilace (protože nelze převést iterátor na datový typ int)
- s.substr(2,3) => llo (tři písmena z 2. indexu)
- s.substr(*s.begin()-s[0],3) => hel (*s.begin() je ‚h‘ pak ‚h‘-s[0]=> ‚h‘-‘h‘=0 znamená substr(0,3) —– tři písmena od nultého indexu
- s.substr(5,1) => ‘ “ (vytiskne prázdné místo, to je na 5. indexu)
- s.substr(2,0) => (není výstup) (vybere nula písmen z druhého indexu)
Důležité body k zapamatování
- Index prvního znaku je 0 (nikoli 1).
- Li poz je rovna délce řetězce, funkce vrací prázdný řetězec.
- Li poz je větší než délka řetězce, vyhodí out_of_range. Pokud k tomu dojde, nedojde k žádným změnám v řetězci.
- Pokud je požadovaný podřetězec jen je větší než velikost řetězce, pak vrácený podřetězec je [pos, velikost()) .
- Li jen není předán jako parametr, pak je vrácen podřetězec [pos, velikost()).
Aplikace podřetězců
- Získejte dílčí řetězec za znakem
- Získejte podřetězec před znak
- Vytiskněte všechny dílčí řetězce daného řetězce
- Součet všech podřetězců řetězce představujícího číslo
- Vytiskne maximální hodnotu všech podřetězců řetězce představujícího číslo
- Vytiskne minimální hodnotu všech podřetězců řetězce představujícího číslo
Získejte podřetězec za znakem
V tomto je zadán řetězec a znak a vy musíte vytisknout podřetězec následovaný daným znakem.
Extrahujte vše po : v řetězci Pes Kočka .
Příklad:
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; }> Výstup
String is: cat>
Časová složitost: NA)
Pomocný prostor: NA)
Jak dostat podřetězec před znak?
V tomto je zadán řetězec a znak a vy musíte vytisknout podřetězec následovaný daným znakem.
Příklad:
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; }> Výstup
String is: dog>
Časová složitost: NA)
Pomocný prostor: NA)
Jak vytisknout všechny dílčí řetězce daného řetězce?
Zadán řetězec jako vstup. Musíme napsat program, který vypíše všechny neprázdné podřetězce daného řetězce.
Příklad:
pořadí náhodně v sqlC++
// 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; }> Výstup
a ab abc abcd b bc bcd c cd d>
Časová složitost: O (N3)
Pomocný prostor: O(1)
Vytisknout součet všech podřetězců řetězce představujícího číslo
Dané celé číslo reprezentované jako řetězec potřebujeme získat součet všech možných podřetězců tohoto řetězce.
Příklad:
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 proti; int n = s.délka(); for (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; }> Výstup
1670>
Časová náročnost: NA3)
Pomocný prostor: NA)
výběr řazení java
Vytiskněte maximální hodnotu všech dílčích řetězců řetězce představujícího číslo
Dané celé číslo reprezentované jako řetězec potřebujeme získat maximum ze všech možných podřetězců daného řetězce, který představuje číslo.
Příklad:
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 proti; for (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; }> Výstup
823>
Vysvětlení: Všechny podřetězce jsou { 8, 82, 823, 2, 23, 3 } a podřetězec s maximální hodnotou je 823.
Časová složitost: NA3)
co je to souborový systém linux
Pomocný prostor: NA!)
Vytiskněte minimální hodnotu všech dílčích řetězců řetězce představujícího číslo
Vzhledem k celému číslu reprezentovanému jako řetězec potřebujeme získat minimum všech možných podřetězců daného řetězce, který představuje číslo.
Příklad:
C++ // C++ program to demonstrate minimum of all possible // substrings of a given string #include using namespace std; void subString(string s, int n) { vector proti; for (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; }> Výstup
2>
Časová složitost: NA3)
Pomocný prostor: NA!)
Další aplikace podřetězce
- Hledání textu: Podřetězce se používají k vyhledávání slov nebo frází ve větších částech textu. To se běžně používá ve vyhledávačích, kde uživatel může zadat frázi nebo klíčové slovo a vyhledávač bude hledat všechny shody obsahující tento podřetězec.
- Analýza textu: Podřetězce se používají v algoritmech analýzy textu k rozdělení větších řetězců na menší části. Analyzátor lze například použít k extrahování jednotlivých slov z věty a jejich uložení do datové struktury.
- Manipulace s textem: Podřetězce se používají v aplikacích pro manipulaci s textem k vyhledání a nahrazení určitých slov nebo frází ve větších částech textu. To lze použít k provádění úloh vyhledávání a nahrazování nebo k aktualizaci informací v dokumentu.
- Zpracování přirozeného jazyka: Podřetězce se používají v algoritmech zpracování přirozeného jazyka k identifikaci slov a frází. To se používá v aplikacích, jako je rozpoznávání řeči, kde algoritmus musí identifikovat slova vyslovená uživatelem.
- Rozpoznávání vzorů: Podřetězce se používají v algoritmech rozpoznávání vzorů k identifikaci vzorů v datech. To lze použít k identifikaci trendů ve finančních datech nebo k detekci anomálií v obrazech.
- Zabezpečení heslem: Podřetězce se používají k ověření hesel. To se provádí porovnáním zadaného hesla s uloženým podřetězcem původního hesla. Pokud se oba shodují, heslo je ověřeno. Tato technika se používá v mnoha aplikacích ke zvýšení bezpečnosti.