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

Hàm strstr () trong C / C ++

Hàm strstr () là một hàm được xác định trước trong tệp tiêu đề “string.h” được sử dụng để thực hiện xử lý chuỗi. Hàm này được sử dụng để tìm lần xuất hiện đầu tiên của một chuỗi con, giả sử str2 trong chuỗi chính, giả sử str1.

Cú pháp

Cú pháp của strstr () như sau -

char *strstr( char *str1, char *str2);

Các tham số của strstr () là

str2 là chuỗi con mà chúng tôi muốn tìm kiếm trong chuỗi chính str1

Giá trị trả về của strstr () là

Hàm này trả về con trỏ địa chỉ của lần xuất hiện đầu tiên của chuỗi con mà chúng ta đang tìm kiếm nếu được tìm thấy trong chuỗi chính, nếu không nó sẽ trả về giá trị null khi chuỗi con không có trong chuỗi chính.

Lưu ý - Quá trình so khớp không bao gồm ký tự null (‘\ 0’), mà hàm dừng khi gặp ký tự null

Ví dụ

Input: str1[] = {“Hello World”}
str2[] = {“or”}
Output: orld
Input: str1[] = {“tutorials point”}
str2[] = {“ls”}
Output: ls point

Ví dụ

#include <string.h>
#include <stdio.h>
int main() {
   char str1[] = "Tutorials";
   char str2[] = "tor";
   char* ptr;
   // Will find first occurrence of str2 in str1
   ptr = strstr(str1, str2);
   if (ptr) {
      printf("String is found\n");
      printf("The occurrence of string '%s' in '%s' is '%s'", str2, str1, ptr);
   }
   else
      printf("String not found\n");
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

String is found
The occurrence of string 'tor' in 'Tutorials' is 'torials

Bây giờ, hãy thử một ứng dụng khác của strstr ()

Chúng ta cũng có thể sử dụng hàm này để thay thế một phần nhất định của chuỗi, ví dụ, nếu chúng ta muốn thay thế chuỗi str1 sau khi tìm thấy lần xuất hiện đầu tiên của chuỗi con str2 của nó.

Ví dụ

Input: str1[] = {“Hello India”}
str2[] = {“India”}
str3[] = {“World”}
Output: Hello World

Giải thích - Bất cứ khi nào tìm thấy str2 trong str1, nó sẽ được thay thế bằng str3

Ví dụ

#include <string.h>
#include <stdio.h>
int main() {
   // Take any two strings
   char str1[] = "Tutorialshub";
   char str2[] = "hub";
   char str3[] = "point";
   char* ptr;
   // Find first occurrence of st2 in str1
   ptr = strstr(str1, str2);
   // Prints the result
   if (ptr) {
      strcpy(ptr, str3);
      printf("%s\n", str1);
   } else
      printf("String not found\n");
      return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Tutorialspoint