반응형
안녕하세요.
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이 리턴되게 됩니다.
반응형
'개발공부 > C언어&C++' 카테고리의 다른 글
[C언어&C++] for문을 이용한 별찍기 (0) | 2020.03.10 |
---|---|
[C언어&C++] malloc, free 함수(동적 할당 / 해제 함수) (0) | 2020.03.09 |
[C언어&C++] strchr 함수(문자 검색 함수) (0) | 2020.03.07 |
[C언어&C++] strlen 함수(문자열 길이 함수) (0) | 2020.03.06 |
[C언어&C++] strcat, strncat 함수(문자열 붙이기 함수) (0) | 2020.03.05 |