Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ หาดัชนีของทุกครั้งที่พบสตริงหนึ่งในอีกสตริงหนึ่ง


สมมติว่าเรามีสตริง str และอีก substring sub_str เราต้องหาดัชนีสำหรับทุกครั้งที่พบ sub_str ใน str สมมติ str คือ "aabbababaabbbabbaaabba" และ sub_str คือ "abb" ดัชนีจะเป็น 1 9 13 18

เพื่อแก้ปัญหานี้ เราสามารถใช้ฟังก์ชัน substr() ใน C++ STL ฟังก์ชันนี้รับตำแหน่งเริ่มต้นที่จะเริ่มตรวจสอบ และความยาวของ substring หากมันเท่ากับ sub_str จะคืนค่าตำแหน่ง

ตัวอย่างโค้ด C++

#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);
}

ผลลัพธ์

Substrings are present at: 1 9 13 18