logo

Підрядок у C++

Функція 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) => (не виводиться) (вибирає нуль літер з другого індексу)

Важливі моменти, про які слід пам’ятати

  1. Індекс першого символу дорівнює 0 (а не 1).
  2. Якщо поз дорівнює довжині рядка, функція повертає порожній рядок.
  3. Якщо поз перевищує довжину рядка, він викидає out_of_range. Якщо це станеться, у рядку немає змін.
  4. Якщо запитаний підрядок тільки більше ніж розмір рядка, тоді повертається підрядок [pos, size()) .
  5. Якщо тільки не передається як параметр, тоді повертається підрядок [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)
Допоміжні приміщення: О (Н!)

Інші застосування підрядка

  • Пошук тексту: Підрядки використовуються для пошуку слів або фраз у великих частинах тексту. Це зазвичай використовується в пошукових системах, де користувач може ввести фразу або ключове слово, а система шукатиме будь-які збіги, що містять цей підрядок.
  • Розбір тексту: Підрядки використовуються в алгоритмах аналізу тексту для розбиття великих рядків на менші частини. Наприклад, синтаксичний аналізатор можна використовувати для вилучення окремих слів із речення та збереження їх у структурі даних.
  • Маніпуляції з текстом: Підрядки використовуються в програмах обробки тексту для пошуку та заміни певних слів або фраз у великих текстах. Це можна використовувати для виконання завдань пошуку та заміни або для оновлення інформації в документі.
  • Обробка природної мови: Підрядки використовуються в алгоритмах обробки природної мови для ідентифікації слів і фраз. Це використовується в таких програмах, як розпізнавання мовлення, де алгоритм має ідентифікувати слова, які вимовляє користувач.
  • Розпізнавання образів: Підрядки використовуються в алгоритмах розпізнавання шаблонів для ідентифікації шаблонів у даних. Це можна використовувати для визначення тенденцій у фінансових даних або виявлення аномалій у зображеннях.
  • Безпека пароля: Підрядки використовуються для перевірки паролів. Це робиться шляхом порівняння введеного пароля із збереженим підрядком вихідного пароля. Якщо вони збігаються, пароль перевірено. Ця техніка використовується в багатьох програмах для підвищення безпеки.