[C++] strstr(), 특정 문자열 찾기

C++에서 strstr() 함수를 이용하여 문자열에 특정 문자열이 포함되어있는지 확인할 수 있습니다. 또한 찾으려고 하는 문자열 위치에 대한 포인터 객체를 리턴 받을 수 있습니다.

1. Syntax

인자로 두개의 문자열을 전달하며, 문자열 s1에서 문자열 s2가 있는지 찾고 그 포인터를 리턴합니다. s2가 존재하지 않으면 null을 리턴합니다.

char* strstr(const char *s1, const char *s2);

문자열의 마지막 \0는 비교 대상에 포함되지 않습니다.

2. Example 1

예를 들어, s1과 s2가 다음과 같다면 strstr()은 s1의 문자 W에 대한 포인터를 리턴합니다.

  • s1 = "Hello, World!"
  • s2 = "World";
#include <iostream>

using namespace std;

int main()
{
    char s1[] = "Hello, World!";
    char s2[] = "World";

    char* ptr = strstr(s1, s2);

    if (ptr)
        cout << "target is present: " << ptr;
    else
        cout << "target is not present";
}

Output:

target is present: World!

3. Example 2

다른 예로, s1과 s2가 다음과 같다면 strstr()은 null을 리턴합니다.

  • s1 = "Hello, World!"
  • s2 = "AAA";
#include <iostream>

using namespace std;

int main()
{
    char s1[] = "Hello, World!";
    char s2[] = "AAA";

    char* ptr = strstr(s1, s2);

    if (ptr)
        cout << "target is present: " << ptr;
    else
        cout << "target is not present";
}

Output:

target is not present

4. Example 3

s2가 ""라면 s1의 첫번째 문자의 포인터를 리턴합니다. 즉 H의 포인터를 리턴합니다.

int main()
{
    char s1[] = "Hello, World!";
    char s2[] = "";

    char* ptr = strstr(s1, s2);

    if (ptr)
        cout << "target is present: " << ptr;
    else
        cout << "target is not present";
}

Output:

target is present: Hello, World!

References

Loading script...
codechachaCopyright ©2019 codechacha