Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm chỉ số của tất cả các lần xuất hiện của một chuỗi trong chuỗi khác trong C ++

Giả sử chúng ta có chuỗi str và một chuỗi con sub_str khác, chúng ta phải tìm các chỉ số cho tất cả các lần xuất hiện của sub_str trong str. Giả sử str là “aabbababaabbbabbaaabba” và sub_str là “abb”, thì các chỉ số sẽ là 1 9 13 18.

Để giải quyết vấn đề này, chúng ta có thể sử dụng hàm substr () trong C ++ STL. Hàm này lấy vị trí ban đầu từ nơi nó sẽ bắt đầu kiểm tra và độ dài của chuỗi con, nếu giống với sub_str, thì trả về vị trí.

Ví dụ

#include<iostream>
using namespace std;
void substrPosition(string str, string sub_str) {
   bool flag = false;
   for (int i = 0; i < str.length(); i++) {
      if (str.substr(i, sub_str.length()) == sub_str) {
         cout << i << " ";
         flag = true;
      }
   }
   if (flag == false)
      cout << "NONE";
}
int main() {
   string str = "aabbababaabbbabbaaabba";
   string sub_str = "abb";
   cout << "Substrings are present at: ";
   substrPosition(str, sub_str);
}

Đầu ra

Substrings are present at: 1 9 13 18