Функція substring використовується для обробки рядкових операцій, таких як зламаний() , додати() і т.д . Він генерує новий рядок із значенням, ініціалізованим копією підрядка цього об’єкта. У C++ файл заголовка, необхідний для std::substr(), рядкових функцій .
Функція substring приймає два значення поз і тільки як аргумент і повертає щойно створений рядковий об’єкт із значенням, ініціалізованим копією підрядка цього об’єкта. Копіювання рядка починається з поз і виконується до пост+лен означає [pos, pos+len).
аліса маньонок
Синтаксис:
string substr (size_t pos, size_t len) const;>
Параметри:
- позиція: Позиція першого символу для копіювання.
- тільки: Довжина підрядка.
- size_t: Це беззнаковий інтегральний тип.
Повернене значення: Він повертає рядковий об’єкт.
приклад:
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; }> Вихід
String is: ks>
- Часова складність: O(N)
- Допоміжний простір: O(N)
Більше прикладів:
string: ' h e l l o w o r l d ' index: 0 1 2 3 4 5 6 7 8 9 10>
якщо ми пишемо: –
- s.substr(s.begin(),3) => помилка компіляції (оскільки неможливо перетворити ітератор на тип даних int )
- s.substr(2,3) => llo (три букви з 2-го індексу)
- s.substr(*s.begin()-s[0],3) => hel (*s.begin() це «h», тоді «h»-s[0]=> «h»-«h»=0 означає substr(0,3) —– три літери від нульового індексу
- s.substr(5,1) => ‘ ‘ (друкує порожній простір, тобто 5-й індекс)
- s.substr(2,0) => (не виводиться) (вибирає нуль літер з другого індексу)
Важливі моменти, про які слід пам’ятати
- Індекс першого символу дорівнює 0 (а не 1).
- Якщо поз дорівнює довжині рядка, функція повертає порожній рядок.
- Якщо поз перевищує довжину рядка, він викидає out_of_range. Якщо це станеться, у рядку немає змін.
- Якщо запитаний підрядок тільки більше ніж розмір рядка, тоді повертається підрядок [pos, size()) .
- Якщо тільки не передається як параметр, тоді повертається підрядок [pos, size()).
Застосування Substring
- Отримати підрядок після символу
- Отримати підрядок перед символом
- Надрукувати всі підрядки даного рядка
- Сума всіх підрядків рядка, що представляє число
- Вивести максимальне значення всіх підрядків рядка, що представляє число
- Вивести мінімальне значення всіх підрядків рядка, що представляє число
Отримати підрядок після символу
Тут подано рядок і символ, і ви повинні надрукувати підрядок, за яким слідує заданий символ.
Витягніть усе після : в рядку пес кіт .
приклад:
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; }> Вихід
String is: cat>
Часова складність: O(N)
Допоміжний простір: O(N)
підрядок рядок java
Як отримати підрядок перед символом?
Тут подано рядок і символ, і ви повинні надрукувати підрядок, за яким слідує заданий символ.
приклад:
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; }> Вихід
String is: dog>
Часова складність: O(N)
Допоміжний простір: O(N)
linux $home
Як надрукувати всі підрядки заданого рядка?
Дано рядок як вхідні дані. Нам потрібно написати програму, яка друкуватиме всі непорожні підрядки даного рядка.
приклад:
C++ // 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; }> Вихід
a ab abc abcd b bc bcd c cd d>
Часова складність: O( N3)
Допоміжний простір: О(1)
Вивести суму всіх підрядків рядка, що представляє число
Дано ціле число, представлене у вигляді рядка, нам потрібно отримати суму всіх можливих підрядків цього рядка.
приклад:
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.length(); для (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; }> Вихід
1670>
Часова складність: O(N3)
Допоміжний простір: O(N)
Надрукуйте максимальне значення всіх підрядків рядка, що представляє число
Дано ціле число, представлене у вигляді рядка, нам потрібно отримати максимум усіх можливих підрядків даного рядка, який представляє число.
приклад:
k найближчий сусід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; для (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; }> Вихід
823>
Пояснення: Усі підрядки — { 8, 82, 823, 2, 23, 3 }, а максимальне значення підрядка — 823.
Часова складність: O(N3)
Допоміжні приміщення: О (Н!)
Надрукуйте мінімальне значення всіх підрядків рядка, що представляє число
Дано ціле число, представлене у вигляді рядка, нам потрібно отримати мінімум усіх можливих підрядків даного рядка, який представляє число.
приклад:
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 v; для (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; }> Вихід
2>
Часова складність: O(N3)
Допоміжні приміщення: О (Н!)
Інші застосування підрядка
- Пошук тексту: Підрядки використовуються для пошуку слів або фраз у великих частинах тексту. Це зазвичай використовується в пошукових системах, де користувач може ввести фразу або ключове слово, а система шукатиме будь-які збіги, що містять цей підрядок.
- Розбір тексту: Підрядки використовуються в алгоритмах аналізу тексту для розбиття великих рядків на менші частини. Наприклад, синтаксичний аналізатор можна використовувати для вилучення окремих слів із речення та збереження їх у структурі даних.
- Маніпуляції з текстом: Підрядки використовуються в програмах обробки тексту для пошуку та заміни певних слів або фраз у великих текстах. Це можна використовувати для виконання завдань пошуку та заміни або для оновлення інформації в документі.
- Обробка природної мови: Підрядки використовуються в алгоритмах обробки природної мови для ідентифікації слів і фраз. Це використовується в таких програмах, як розпізнавання мовлення, де алгоритм має ідентифікувати слова, які вимовляє користувач.
- Розпізнавання образів: Підрядки використовуються в алгоритмах розпізнавання шаблонів для ідентифікації шаблонів у даних. Це можна використовувати для визначення тенденцій у фінансових даних або виявлення аномалій у зображеннях.
- Безпека пароля: Підрядки використовуються для перевірки паролів. Це робиться шляхом порівняння введеного пароля із збереженим підрядком вихідного пароля. Якщо вони збігаються, пароль перевірено. Ця техніка використовується в багатьох програмах для підвищення безпеки.