[급질] 주소록 검색 방법 좀 알려 주세요.
글쓴이: 라이더 / 작성시간: 화, 2007/03/20 - 12:45오후
안녕하세요. 급하게 필요해서 이렇게 질문을 드립니다...
혹 아시는분 있으시면 답변좀 부탁 드리겠습니다.
핸드폰에 보면 주소록 검색을 하잖아요....
예를 들어 검색어를 "ㄱ"이라고 입력 하면... "ㄱ"을 포함하는 가, 김, 검... 등 "ㄱ"을 포함하는
한글 글자를 찾을수가 있는데.. 이걸 어떻게 C언어로 구현이 가능할까요???
어떤 비트 연산이나... 어떤 연산으로 가능할거 같은데...
혹시 아시는분 있으세요????
부탁 드리겠습니다...
Forums:
조합형 -.-b iconv --list
조합형 -.-b
iconv --list 중에 JOHAB 이라는 이름이 있습니다.
제가 알기로, 검색/정렬 문제라면 조합형 외에 완벽한 대안은 없습니다.
어떤 인코딩
어떤 인코딩 상황이냐에 따라서 다릅니다.
윗분 처럼 조합 인코딩이나 유니코드 문자집합 중 첫가끝 방식을 이용한 인코딩을 이용한다면, 초성이 ㄱ인 모든 글자 코드를 만들어 낼 수는 있습니다.
euc-kr 이나, 유니코드 문자집합 중 Hangul Syllable 영역을 이용한 인코딩을 이용한다면 각 초성에 대해 범위를 지정해 주는 방식으로 할 수 있겠구요.
uhc 등이라면 테이블을 만드는 수 밖에 없겠죠.
주소록 자체를 조합 혹은 유니코드 첫가끝 방식을 이용한 utf-16 내지는 utf-32 인코딩으로 변환하지 않는 이상은 연산 한방에 끝낼 수 있게 만들 수 있을 것 같지가 않습니다.
euc-kr, 유니코드 완성형 방식을 이용한 utf-16, utf-32 의 경우는 각 초성에 대한 범위를 지정해서 검색하면 되겠구요.
uhc 나 utf-8 이라면, 같은 초성으로 시작하는 글자 인코딩의 공통 부분을 추려내어서 테이블을 만들거나, 글자 자체에 대한 테이블을 만들어야 할 것입니다. 연산으로 한다고 해도 복잡해 지겠죠.
이런 일들을 해주는 라이브러리가 따로 있을 지는 모르겠지만, iconv 를 이용한다면 크게 어렵지는 않을 것 같습니다.
댓글 달기