|
아주 짧은 토큰 수준의 스트링을 제외하곤 strcmp 이외의 문자열 비교 방법은 없습니다.
(이름은 다르더라도 메카니즘은 같죠)
이런 경우의 해결책은 비교할 문자열들을 정렬된 형태로 만들어 두는겁니다.
성능을 위해 필요하면 index를 사용해서 말이죠.
정렬을 하는 이유는 2진탐색이 가능하게 하기 위해서구요.
2진탐색을 사용할 경우, 최악의 상황에서 1000번 비교해야 할 경우를 10번으로 줄여줍니다. (n : (log2 n))
한수동 님이 쓰신 글 :
: 무지함에 있어 송구스럽지만 이런 질문을 드립니다;;
:
: strcmp를 써서 비교해야 할 문자열이 수백개 될때
: if...else if 문 말고 딴 방법은 없을까요?
: (if...else if 문 을 쓰면 만약 비교해서 같은 문자열이 가장 마지막에 있으면 너무 시스템이 버벅거려서;;;)
:
: 제가 원하는 것은 단지 어떤 변수 문자열이 a라는 문자열과 같으면 1을 반환 하는 식의
: 일정한 문자열과 같으면 그 문자열에 대한 번호를 반환하는 것을 하는 것입니다
|