프로그래밍/C

C] strstr 함수 구현

eteo 2023. 9. 15. 23:08

 

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;
}