개발공부/C언어&C++
[C언어&C++] strstr 함수(문자열 검색 함수)
정보를드립니다
2020. 3. 8. 20:00
반응형
안녕하세요.
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이 리턴되게 됩니다.
반응형