본문 바로가기
프로그래밍/C

C] strstr 함수 구현

by eteo 2023. 9. 15.

 

strstr() 함수는 substring을 찾는 함수로 str1에서 str2를 찾는다.

str2의 길이가 0이면 str1을 리턴, str2를 못찾으면 NULL을 리턴, str2를 찾았으면 str1에서 str2 시작 위치의 포인터를 리턴한다.

 

const char* my_strstr(const char* str1, const char* str2) {
    char* ret;
    int found = 0;
    
    if (*str2 == 0) {
        ret = str1;
    } else {
        for(; *str1 != 0; str1++) {
            if(*str1 == *str2) {
                const char *s1 = str1;
                const char *s2 = str2;
                while(*s1 == *s2 && *s2 != 0) {
                    s1++;
                    s2++;
                }
                if(*s2 == 0) {
                    found = 1;
                    break;
                }
            }
        }
    }

    if (found) {
        ret = str1;
    } else {
        ret = NULL;
    }
    
    return ret;
}