Cách sử dụng hàm find_first_of () trong C ++

How Use Find_first_of Function C



Các hàm dựng sẵn khác nhau tồn tại trong C ++ để hoạt động với dữ liệu chuỗi. Các find_first_of () hàm được sử dụng để tìm vị trí xuất hiện đầu tiên của ký tự được chỉ định. Hàm này trả về vị trí của lần xuất hiện đầu tiên của chuỗi sẽ được cung cấp làm giá trị đối số của hàm này. Các cách sử dụng khác nhau của hàm này để tìm kiếm chuỗi trong C ++ đã được giải thích trong hướng dẫn này.

Điều kiện tiên quyết

Trước khi kiểm tra các ví dụ của hướng dẫn này, bạn phải kiểm tra trình biên dịch g ++ đã được cài đặt hay chưa trong hệ thống. Nếu bạn đang sử dụng Visual Studio Code, thì hãy cài đặt các phần mở rộng cần thiết để biên dịch mã nguồn C ++ nhằm tạo mã thực thi. Ở đây, ứng dụng Visual Studio Code đã được sử dụng để biên dịch và thực thi mã C ++.







Các tính năng của hàm find_first_of ()

Các find_first_of () hàm có thể trả về các loại biến khác nhau dựa trên giá trị của đối số đầu tiên. Nó sẽ trả về vị trí tìm kiếm của chuỗi nếu giá trị đối số đầu tiên là một chuỗi. Nó sẽ trả về vị trí tìm kiếm của chuỗi ký tự nếu con trỏ đến một mảng ký tự được đưa ra trong đối số đầu tiên. Nó sẽ trả về vị trí đệm nếu giá trị của đối số thứ ba được đưa ra. Nó sẽ trả về vị trí ký tự nếu một ký tự được đưa ra trong đối số đầu tiên và nó tồn tại trong chuỗi chính. Vị trí bắt đầu của tìm kiếm được đặt trong đối số thứ hai của hàm này. Cú pháp khác nhau của hàm này được đưa ra dưới đây.



Cú pháp

string size_t find_first_of (const string & str, size_t pos = 0) const;
c-string size_t find_first_of (const char * s, size_t pos = 0) const;
bộ đệm size_t find_first_of (const char * s, size_t pos, size_t n) const;
ký tự size_t find_first_of (char c, size_t pos = 0) const;



Ví dụ 1: Tìm kiếm và thay thế ký tự cụ thể của một chuỗi

Ví dụ sau đây cho thấy cách tìm kiếm vị trí của một ký tự cụ thể trong một chuỗi. Tạo tệp C ++ với mã sau để thay thế ký tự cụ thể bằng ký tự khác. Trong mã, find_first_of () hàm đã được sử dụng để tìm kiếm tất cả các vị trí của một ký tự cụ thể trong một chuỗi và thay thế các ký tự đó bằng một ký tự khác bằng cách sử dụng vòng lặp. Chuỗi ban đầu và chuỗi được thay thế sẽ được in sau khi thực thi mã.





// Bao gồm để in đầu ra
#bao gồm
// Bao gồm để sử dụng size_t
#bao gồm

NSchủ chốt()
{
// Khởi tạo một biến chuỗi
giờ::dâystrData('Chào mừng đến với LinuxHint');
// In chuỗi gốc
giờ::Giá cả << 'Chuỗi ban đầu là:' +strData<< ' ';
// Tìm tất cả vị trí của ký tự 'i'
giờ::size_tsearchList=strData.find_first_of('tôi');
// Lặp lại vòng lặp để thay thế tất cả 'i' bằng '@'
trong khi (searchList!=giờ::dây::npos)
{
strData[searchList] = '@';
searchList=strData.find_first_of('tôi', searchList+1);
}
// In chuỗi đã sửa đổi
giờ::Giá cả << 'Chuỗi đã sửa đổi là:' +strData<< ' ';

trở lại 0;
}

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi thực hiện đoạn mã trên.



Ví dụ 2: Tìm kiếm vị trí đầu tiên của các ký tự đang tìm kiếm

Tạo tệp C ++ với mã sau để tìm kiếm vị trí của một chuỗi gồm nhiều ký tự và trả về vị trí đầu tiên của ký tự khớp với chuỗi chính. Dữ liệu chuỗi đã được gán trong một biến chuỗi và vị trí đầu tiên được lưu trong một biến số nguyên. Giá trị vị trí sẽ được in sau khi thực thi mã.

// Bao gồm để in đầu ra
#bao gồm

NSchủ chốt()
{
// Khởi tạo biến chuỗi
giờ::dâystrData( 'Lập trình C ++ cơ bản');
// Khai báo biến interger để lưu trữ vị trí
NSChức vụ;
// Tìm kiếm ký tự 'C ++'
Chức vụ=strData.find_first_of( 'K ++' );
// Kiểm tra giá trị vị trí
nếu như (Chức vụ> = 0)
{
// In vị trí nếu tìm thấy bất kỳ ký tự nào
giờ::Giá cả << 'Nhân vật '' <<strData[Chức vụ]
<< '' đã tìm thấy' << 'ở vị trí' <<Chức vụ<< ' ';
}

trở lại 0;
}

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Đây, nhân vật, ‘ + 'Của chuỗi,' K ++ 'Đã được tìm thấy ở vị trí, 7 của chuỗi chính, ' Lập trình C ++ cơ bản '.

Ví dụ 3: Tìm kiếm một ký tự cụ thể sau vị trí cụ thể

Tạo tệp C ++ với mã sau để tìm kiếm một ký tự cụ thể sau vị trí cụ thể. Dữ liệu chuỗi được lưu trữ trong biến chuỗi và một chuỗi cụ thể được tìm kiếm sau vị trí, 13. Nếu bất kỳ ký tự nào của chuỗi tìm kiếm được tìm thấy trong chuỗi chính, thì giá trị vị trí sẽ được trả về.

// Bao gồm để in đầu ra
#bao gồm

NSchủ chốt()
{
// Khởi tạo một biến chuỗi
giờ::dâystrData= 'ăn để sống không phải sống để ăn';
// In chuỗi gốc
giờ::Giá cả << 'Chuỗi ban đầu là:' +strData<< ' ';
// In vị trí tìm thấy ký tự cuối cùng
giờ::Giá cả<<'Ký tự phù hợp cuối cùng được tìm thấy ở vị trí:'
<<strData.find_first_of('tại',13) << ' ';
trở lại 0;
}

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Đây, nhân vật, ‘ đến 'Của chuỗi,' tại 'Đã được tìm thấy ở vị trí, mười lăm của chuỗi chính, ' ăn để sống không phải sống để ăn '.

Ví dụ 4: Tìm kiếm vị trí của số phù hợp đầu tiên

Tạo tệp C ++ với mã sau để tìm kiếm từng số của danh sách vectơ đầu tiên trong danh sách vectơ thứ hai và trả về vị trí của số khớp của danh sách vectơ đầu tiên. Nếu một đối số phù hợp được tìm thấy, thì giá trị vị trí sẽ được trả về; nếu không, một thông báo sẽ được in.

// Bao gồm để in đầu ra
#bao gồm
// Bao gồm để tìm kiếm dữ liệu trong vectơ
#bao gồm
// Bao gồm để sử dụng dữ liệu vectơ
#bao gồm

NSchủ chốt()
{
// Khai báo danh sách hai vectơ
giờ::vectơlist1{10,5,65,31,7};
giờ::vectơlist2{2,77,5,38,32,55};
// Tìm kiếm dữ liệu của list1 vào list2
tự độngđầu ra=giờ::find_first_of(danh sách1.bắt đầu(), danh sách1.kết thúc(), danh sách2.bắt đầu(), danh sách2.kết thúc());
// Đọc vị trí của số phù hợp
NSChức vụ=giờ::khoảng cách(danh sách1.bắt đầu(), đầu ra);

// Kiểm tra bất kỳ số lượng list1 nào khớp với bất kỳ số lượng nào trong list2
nếu như (đầu ra<danh sách1.kết thúc()) {
giờ::Giá cả << 'Số phù hợp đầu tiên' <<list1[Chức vụ] << 'tìm thấy ở vị trí' <<Chức vụ<< ' ';
}
khác {
giờ::Giá cả << 'Không tìm thấy số phù hợp. ';
}
}

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Giá trị số, 5 của mảng đầu tiên, tồn tại trong mảng thứ hai và vị trí của số này là 1.

Phần kết luận

Hàm find_first_of () có thể được sử dụng để tìm kiếm một ký tự hoặc số cho các mục đích lập trình khác nhau. Chức năng này có thể được sử dụng để giải quyết các vấn đề tìm kiếm khác nhau. Tôi hy vọng lập trình viên C ++ có thể sử dụng chức năng này đúng cách sau khi đọc hướng dẫn này.