Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 strstr()


strstr() 함수는 string.h에 미리 정의된 함수입니다. 문자열에서 부분 문자열의 발생을 찾는 데 사용됩니다. 이 일치 프로세스는 '\0'에서 멈추고 포함하지 않습니다.

strstr()의 구문은 다음과 같습니다 -

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

위의 구문에서 strstr()은 문자열 str1에서 문자열 str2의 첫 번째 출현을 찾습니다. 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 is red"와 "are" 값으로 정의됩니다. 이것은 다음과 같습니다 -

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

포인터 ptr은 "Apples is red"에서 "are"가 처음 나타나는 위치를 가리킵니다. 이것은 strstr() 함수를 사용하여 수행됩니다. 이에 대한 코드 스니펫은 다음과 같습니다. -

ptr = strstr(str1, str2);

포인터 ptr에 값이 포함되어 있으면 str1에서 str2의 위치가 표시됩니다. 그렇지 않으면 ptr1에 ptr2가 발생하지 않은 것으로 표시됩니다. 이것은 아래에 표시됩니다 -

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

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