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

strstr() ใน C++


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

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

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

ในไวยากรณ์ข้างต้น strstr() จะค้นหาการเกิดขึ้นครั้งแรกของสตริง str2 ในสตริง str1 โปรแกรมที่ใช้ strstr() มีดังนี้ -

ตัวอย่าง

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

ผลลัพธ์

ผลลัพธ์ของโปรแกรมข้างต้นเป็นดังนี้ −

Occurance of "are" in "Apples are red" is at position 8

ในโปรแกรมข้างต้น str1 และ str2 ถูกกำหนดด้วยค่า “Apples are red” และ “are” ตามลำดับ ด้านล่างนี้ −

char str1[] = "Apples are red";
char str2[] = "are";
char *ptr;

ตัวชี้ ptr ชี้ไปที่การเกิดขึ้นครั้งแรกของ "are" ใน "Apples are red" ทำได้โดยใช้ฟังก์ชัน strstr() ข้อมูลโค้ดสำหรับสิ่งนี้ได้รับด้านล่าง −

ptr = strstr(str1, str2);

หากตัวชี้ ptr มีค่า ตำแหน่งของ str2 ใน str1 จะปรากฏขึ้น มิฉะนั้น จะแสดงว่าไม่มี ptr2 เกิดขึ้นใน ptr1 ด้านล่างนี้ −

if(ptr)
cout<<"Occurance of \""<< str2 <<"\" in \""<< str1 <<"\" is at position "<<ptr - str1 + 1;

else
cout<<"There is no occurance of \""<< str2 <<"\" in "<<str1;