소문자화 아스키 코드는 대충 이렇게 만들면 되지 않을까요?


char    lower_ascii[ 0x100 ];

char*   strstr_i( const char *src, const char *sub )

{

    if( !( (size_t)src | (size_t)sub ) ) return NULL;


    if( !lower_ascii[ 0xFF ] )

    {

        size_t i;

        for( i = 0; i < 'A'; ++i ) lower_ascii[ i ] = i;

        for( ; i <= 'Z'; ++i ) lower_ascii[ i ] = i | 0x20;

        for( ; i < 0x100; ++i ) lower_ascii[ i ] = i;

    }

    char* s = (char*)src;

    char* r = (char*)sub;

    char* o = s;

    while( *s )

    {

        if( lower_ascii[ *s ] == lower_ascii[ *r ] )

        {

            s++;

            r++;

            if ( !*r ) return o - 1; 

        }

        else

        {

            s = o++;

            r = (char*)sub;

        }

    }

    return NULL;

}


저는 아스키 코드 테이블 안쓰는 방법으로 갖고 놀아보고 있어유~