본문 바로가기

C 언어 함수

부분 문자열 비교 함수 strstr

strstr 함수의 사용과 원리

Apple , Apple cider 라는 두 문자열이 있다고 가정하자. 이 단어 중에 중복되는 단어는 Apple 이다. 

C언어에서 함수로 "Apple" 이라는 단어가 중복되는지 찾고 싶을 때 사용하는 함수가 바로 strstr 이다. 

string.h 헤더 파일에 선언되어 있다. 


strstr 함수의 원형은 다음과 같다:

char *strstr(const char *haystack, const char *needle);


haystack: 검색 대상이 되는 문자열
needle: haystack에서 찾고자 하는 부분 문자열

 

strstr 함수는 haystack 문자열을 처음부터 끝까지 순차적으로 탐색하며, 각 위치에서 needle 문자열의 시작 부분과 일치하는지 검사한다. 일치하는 위치를 찾으면 그 위치의 포인터를 반환한다. 일치하는 부분이 없으면 탐색을 계속한다.

 

예시 코드 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>

int solution(const char* str1, const char* str2) {
    
   return strstr(str1, str2)?1:2;
}

int main(void){
    const char* str1 = "ab6CDE443fgh22iJKlmn1o";
    const char* str2 = "6CD"; 
    
    int result = solution(str1, str2);
    printf("%d", result);
    return 0; 
}