Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฟังก์ชัน strstr() ใน C/C++


ฟังก์ชัน strstr() เป็นฟังก์ชันที่กำหนดไว้ล่วงหน้าในไฟล์ส่วนหัว "string.h" ซึ่งใช้สำหรับดำเนินการจัดการสตริง ฟังก์ชันนี้ใช้เพื่อค้นหาการเกิดขึ้นครั้งแรกของสตริงย่อย สมมติว่า str2 ในสตริงหลัก สมมติว่า str1

ไวยากรณ์

ไวยากรณ์ของ strstr() มีดังนี้ −

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

พารามิเตอร์ของ strstr() คือ

str2 เป็นสตริงย่อยที่เราต้องการค้นหาในสตริงหลัก str1

ค่าส่งคืนของ strstr() คือ

ฟังก์ชันนี้ส่งคืนตัวชี้ที่อยู่ของสตริงย่อยที่เกิดขึ้นครั้งแรกซึ่งเรากำลังค้นหาหากพบในสตริงหลัก มิฉะนั้นจะคืนค่า null เมื่อไม่มีสตริงย่อยในสตริงหลัก

หมายเหตุ − ขั้นตอนการจับคู่ไม่รวมอักขระ null ('\0') แต่ฟังก์ชันจะหยุดเมื่อพบอักขระ null

ตัวอย่าง

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

ตัวอย่าง

#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;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

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

ตอนนี้ มาลองใช้โปรแกรมอื่นของ strstr()

นอกจากนี้เรายังสามารถใช้ฟังก์ชันนี้เพื่อแทนที่บางส่วนของสตริงได้ ตัวอย่างเช่น หากเราต้องการแทนที่สตริง str1 หลังจากพบสตริงย่อย str2 เกิดขึ้นเป็นครั้งแรก

ตัวอย่าง

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

คำอธิบาย − เมื่อใดก็ตามที่พบ str2 ใน str1 จะถูกแทนที่ด้วย str3

ตัวอย่าง

#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;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Tutorialspoint