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

Chương trình C ++ để thực hiện đối sánh chuỗi bằng thư viện chuỗi

Ở đây chúng ta sẽ xem cách các hàm thư viện chuỗi có thể được sử dụng để khớp các chuỗi trong C ++. Ở đây chúng tôi đang sử dụng phép toán 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 mà chuỗi được tìm thấy. Ở đây, chúng tôi đang sử dụng hàm find () này nhiều lần để lấy tất cả các kết quả phù hợp.

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

Input: The main string “aabbabababbbaabb” and substring “abb”
Output: The locations where the substrings are found. [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 - Vị trí của chuỗi con trong chuỗi chính

pos := 0
while index = first occurrence of sub_str into the str in range pos to end of the string, do
   print the index as there is a match
   pos := index + 1
done

Mã mẫu

#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 << "Match found at position: " << index << endl;
      pos = index + 1; //new position is from next element of index
   }
}

Đầu ra:

Match found at position: 1
Match found at position: 8
Match found at position: 13