Tìm kiếm chuỗi string trong C++ | Laptrinhcanban.com

Tìm kiếm chuỗi string trong C++

Hướng dẫn cách tìm kiếm chuỗi string trong C++. Bạn sẽ học được cách sử dụng các hàm có sẵn như hàm find và rfind để tìm một hoặc một chuỗi ký tự trong string C++ sau bài học này.

Chúng ta có 2 phương pháp để tìm kiếm chuỗi string trong C++ như sau:

  • Hàm find(): Tìm một hoặc một chuỗi ký tự từ đầu string trong C++
  • Hàm rfind(): Tìm một hoặc một chuỗi ký tự từ cuối string trong C++

Tìm ký tự hoặc chuỗi ký tự từ đầu string trong C++ bằng hàm find.

Hàm find là một hàm thành viên trong class std:string, có tác dụng vị trí xuất hiện đầu tiên của một hoặc một chuỗi ký tự chỉ định từ đầu tới cuối string trong C++.

Nói cách khác thì hàm find sẽ tiến hành tìm kiếm một đối tượng từ trái qua phải trong string chỉ định.

Cú pháp của hàm find trong C++ như sau:

base.find(str, pos)

Trong đó:

  • base là chuỗi ban đầu
  • str là ký tự hoặc chuỗi string cần tìm từ trong base
  • pos là vị trí bắt đầu tìm kiếm. Nếu lược bỏ pos thì sẽ tiến hành tìm từ đầu string.

Hàm find sẽ trả về vị trí index tìm thấy đầu tiên của đối tượng cần tìm kiếm trong string ban đầu. Và nếu đối tượng đó không tồn tại trong string, giá trị lớn nhất của kiểu dữ liệu size_t sẽ được trả về.

Ví dụ cụ thể, chúng ta sử dụng hàm find để tìm ký tự hoặc chuỗi ký tự trong nhiều trường hợp khác nhau như sau:

#include <iostream>
#include <cstring>
using namespace std;
int main(){

string base = "Good School";
//Tìm vị trí xuất hiện đầu tiên từ đầu string của ký tự
cout << base.find('o') << endl;

//Tìm vị trí xuất hiện đầu tiên từ đầu string của chuỗi ký tự
cout << base.find("oo") << endl;

//Tìm vị trí xuất hiện đầu tiên từ vị trí thứ 3 đến cuối string
cout << base.find("oo", 3) << endl;

//Kết quả khi không tìm thấy ký tự chỉ định trong string
cout << base.find("m") << endl;


return 0;
}

Kết quả:

Vi tri tim thay ky tu o:1
Vi tri tim thay chuoi oo:1
Vi tri tim thay chuoi oo tinh tu ky tu thu 3:8
Vi tri tim thay ky tu m:18446744073709551615

Tìm ký tự hoặc chuỗi ký tự từ cuối string trong C++ bằng hàm rfind.

Ngược lại với hàm find ở trên thì chúng ta có hàm rfind() để giúp tìm kiếm từ cuối string trở về đầu string.

Hàm rfind là một hàm thành viên trong class std:string, có tác dụng vị trí xuất hiện đầu tiên của một hoặc một chuỗi ký tự chỉ định từ cuối lên đầu string trong C++.

Nói cách khác thì hàm rfind sẽ tiến hành tìm kiếm một đối tượng từ phải qua trái trong string chỉ định.

Cú pháp của hàm rfind trong C++ như sau:

base.rfind(str, pos)

Trong đó:

  • base là chuỗi ban đầu
  • str là ký tự hoặc chuỗi string cần tìm từ trong base
  • pos là vị trí bắt đầu tìm kiếm. Nếu lược bỏ pos thì sẽ tiến hành tìm từ cuối string trở về đầu string.

Hàm rfind sẽ trả về vị trí index tìm thấy đầu tiên của đối tượng cần tìm kiếm trong string ban đầu. Và nếu đối tượng đó không tồn tại trong string, giá trị lớn nhất của kiểu dữ liệu size_t sẽ được trả về.

Ví dụ cụ thể, chúng ta sử dụng hàm rfind để tìm ký tự hoặc chuỗi ký tự trong nhiều trường hợp khác nhau như sau:

#include <iostream>
#include <cstring>
using namespace std;
int main(){

string base = "Good School";
//Tìm vị trí xuất hiện đầu tiên từ cuối string của ký tự
cout << base.rfind('o') << endl;

//Tìm vị trí xuất hiện đầu tiên từ đầu string của chuỗi ký tự
cout << base.rfind("oo") << endl;

//Tìm vị trí xuất hiện đầu tiên từ vị trí thứ 3 lên đầu string
cout << base.rfind("oo", 3) << endl;

//Kết quả khi không tìm thấy ký tự chỉ định trong string
cout << base.rfind("m") << endl;


return 0;
}

Kết quả:

9
8
1
18446744073709551615

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách tìm chuỗi và ký tự trong string C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.