라이브러리 함수가 따로 없길래


char * stristr(const char *pszSrc, const char *pszSearch)

{

if (pszSrc && pszSearch) { // api 등은 특정 스트링란에 필요없는 경우 NULL 전달하는 경우가 많으므로 체크 필요

const char *s, *sub;

for (; *pszSrc; pszSrc++) {

for (sub = pszSearch, s = pszSrc; *sub && *s; sub++, s++) {

char ms, msub; // 소문자의 경우 대문자 값을 받기 위한 변수

if (*s >= 'a' && *s <= 'z') { ms = *s - 0x20; }

else { ms = *s; }

if (*sub >= 'a' && *sub <= 'z') { msub = *sub - 0x20; }

else { msub = *sub; }

if (ms != msub) break;

}

if (*sub == 0) return (char *)pszSrc;

}

}

return NULL;

}

인터넷에서 긁어온 위 함수랑 strstr을 돌려서 37메가짜리 txt파일을 끝까지 읽는데 걸리는 시간을 재봤는데

strstr은 3ms정도 걸리고 저 함수는 80ms정도 걸립니다.

약 25배 이상 느린데 저런 큰 텍스트 뭉텅이를 모조리 소문자로 바꿔서 strstr 돌리는것도 뭔가 아닌거같고

뭐 어케해야될까요..