Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ khớp chuỗi sử dụng thư viện String


Ở đây chúng ta sẽ thấy cách các hàm thư viện string có thể được dùng để khớp chuỗi trong C++. Ở đây chúng ta sử dụng thao tác find() để lấy các lần xuất hiện của chuỗi con vào chuỗi chính. Phương thức find() này trả về vị trí đầu tiên nơi chuỗi được tìm thấy. Ở đây chúng ta sử dụng hàm find() nhiều lần để lấy tất cả các khớp.

Nếu mục được tìm thấy, hàm này trả về vị trí. Nhưng nếu không tìm thấy, nó sẽ trả về string::npos.

Đầu vào: Chuỗi chính "aabbabababbbaabb" và chuỗi con "abb" 
Đầu ra: Các vị trí tìm thấy chuỗi con. [1, 8, 13]

Thuật toán

String_Find(main_str, sub_str)

Đầu vào - Chuỗi chính và chuỗi con cần kiểm tra

Đầu ra - Các vị trí của chuỗi con trong chuỗi chính

pos := 0 
while index = lần xuất hiện đầu tiên của sub_str trong str trong phạm vi pos đến cuối chuỗi, thực hiện 
    in index vì có khớp 
    pos := index + 1 
kết thúc

Mã ví dụ

#include<iostream> 
using namespace std; 

main() { 
    string str1 = "aabbabababbbaabb"; 
    string str2 = "abb"; 
    int pos = 0; 
    int index; 
    while((index = str1.find(str2, pos)) != string::npos) { 
        cout << "Tìm thấy khớp tại vị trí: " << index << endl; 
        pos = index + 1; //vị trí mới từ phần tử tiếp theo của index 
    } 
}

Kết quả:

Tìm thấy khớp tại vị trí: 1 
Tìm thấy khớp tại vị trí: 8 
Tìm thấy khớp tại vị trí: 13