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