Hàm strstr () là một hàm được xác định trước trong string.h. Nó được sử dụng để tìm sự xuất hiện của một chuỗi con trong một chuỗi. Quá trình đối sánh này dừng lại ở ‘\ 0’ và không bao gồm nó.
Cú pháp của strstr () như sau -
char *strstr( const char *str1, const char *str2)
Trong cú pháp trên, strstr () tìm lần xuất hiện đầu tiên của chuỗi str2 trong chuỗi str1. Một chương trình triển khai strstr () như sau -
Ví dụ
#include <iostream> #include <string.h> using namespace std; int main() { char str1[] = "Apples are red"; char str2[] = "are"; char *ptr; ptr = strstr(str1, str2); if(ptr) cout<<"Occurance of \""<< str2 <<"\" in \""<< str1 <<"\" is at position "<<ptr - str1 + 1; else cout<<"There is no occurance of \""<< str2 <<"\" in "<<str1; return 0; }
Đầu ra
Kết quả của chương trình trên như sau -
Occurance of "are" in "Apples are red" is at position 8
Trong chương trình trên, str1 và str2 được định nghĩa với các giá trị tương ứng là “Táo có màu đỏ” và “là”. Điều này được đưa ra dưới đây -
char str1[] = "Apples are red"; char str2[] = "are"; char *ptr;
Con trỏ ptr trỏ đến lần xuất hiện đầu tiên của “are” trong “Apples are red”. Điều này được thực hiện bằng cách sử dụng hàm strstr (). Đoạn mã cho điều này được cung cấp bên dưới -
ptr = strstr(str1, str2);
Nếu con trỏ ptr chứa một giá trị, thì vị trí của str2 trong str1 được hiển thị. Nếu không, nó được hiển thị rằng không có sự xuất hiện của ptr2 trong ptr1. Điều này được hiển thị bên dưới -
if(ptr) cout<<"Occurance of \""<< str2 <<"\" in \""<< str1 <<"\" is at position "<<ptr - str1 + 1; else cout<<"There is no occurance of \""<< str2 <<"\" in "<<str1;