반응형

안녕하세요.

C언어에서 특정 문자열를 검색하는 함수인 strstr에 대해 알아보겠습니다.

 

strstr


함수 원형
char* strstr(const char *_Str, const char *_SubStr);

헤더 파일
string.h

리턴값
_SubStr문자열과 같은 값을 가진 _Str문자열의 포인트값을 리턴해줍니다.
_Str에 _SubStr와 동일한 문자열이 없다면, NULL을 리턴합니다.

설명
문자열의 첫번째 문자부터 마지막 문자까지 검색을 해서 같은 문자열을 찾은 후 처음 찾은 포인터를 리턴합니다.
만약에 찾을 대상 문자열에 같은 값을 가진 문자열이 여러개 있어도 처음 찾은 포인터만 리턴하게 됩니다.


예제

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h>
 
void main()
{
    char arrString[20= "Hello World";
    
    char* pCh1 = strstr(arrString, "llo");
    char* pCh2 = strstr(arrString, "rle");
 
    printf("strstr(arrString, ""llo"") : %s\n", pCh1);
    printf("strstr(arrString, ""rle"") : %s\n", pCh2);
}
 
cs

결과값

문자열 배열 arrString("Hello World")에서

8번째 줄 코드(char* pCh1 = strstr(arrString, "llo");)에서는 "llo"문자열을

strstr함수를 통해 찾는데, "Hello World"의 세번째 문자부터 다섯번째 문자가

동일한 문자열이 된다.

그러므로 리턴값은 세번째 문자 포인터값을 가지게 되므로 "llo World"가 출력이 됩니다.

 

9줄 코드(char* pCh2 = strstr(arrString, "rle");)에서는

"rle"문자열을 "Hello World"문자열에서 찾는데, 비슷하게 맞는 문자열은 있지만, 

정확하 동일한 문자열을 찾을 수 없습니다. 

그러므로 null이 리턴되게 됩니다.

 

반응형

+ Recent posts