블루 브리지 컵 접두사 판단

제목 제목: 접두사 판단


다음 코드 판단needlestart가 가리키는 문자열이haystack 인지 여부start가 가리키는 열의 접두사입니다. 그렇지 않으면 NULL로 돌아갑니다.
예를 들어: "abcd1234"는 "abc"를 접두사로 포함하고 있다
char* prefix(char* haystack_start, char* needle_start)
{
    char* haystack = haystack_start;
    char* needle = needle_start;
    while(*haystack && *needle){
        if(______________________________) return NULL;  //    
    }

    if(*needle) return NULL;

    return haystack_start;
}

분석:


제목의 묘사가 명확하지 않아서 접두사라면 무엇을 되돌려줄지 완전히 가리키지 않았다.그러나 판단은 순환 안에서 비교적 명확하고 지침이 있는 이동 조작이 필요하기 때문에 동일한지 아닌지를 판단하고 자가하면 된다.

코드는 다음과 같습니다.

#include 
char* prefix(char* haystack_start, char* needle_start)
{
    char* haystack = haystack_start;
    char* needle = needle_start;


    while(*haystack && *needle){
        if(*haystack++ != *needle++ && needle!=NULL)
            return NULL;
    }

    if(*needle) return NULL;

    return haystack_start;
}

int main()
{
    printf("%s",prefix("abcd1234","abc"));
    return 0;
}

좋은 웹페이지 즐겨찾기